工具/软件:Code Composer Studio
我无法使用内部寄存器 PWM 模式与 drv8308和 tm4c1294ncpdti 板通信
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_ssi.h"
#include "inc/hw_types.h"
#include "driverlib/ssi.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
uint32_t ui32SysClkFreq;
#define NUM_SSI_DATA 12.
uint8_t pui8DataTx[NUM_SSI_DATA];
uint8_t pui8DataTxdataMSB[NUM_SSI_DATA];
uint8_t pui8DataTxdataLSB[NUM_SSI_DATA];
int main (空)
{
uint32_t ui32Index;
uint32_t ui32Data;
ui32SysClkFreq = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_3);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
// GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_4|GPIO_PIN_2);
SSIConfigSetExpClk (SSI0_BASE、ui32SysClkFreq、SSI_FRF_MOTO_MODE_1、SSI_MODE_MASTER、1000000、 8);
SSIEnable (SSI0_BASE);
//
//初始化地址字节0
//
pui8DataTx[0]= 0x00;
pui8DataTx[1]= 0x01;
pui8DataTx[2]= 0x02;
pui8DataTx[3]= 0x03;
pui8DataTx[4]= 0x04;
pui8DataTx[5]= 0x05;
pui8DataTx[6]= 0x06;
pui8DataTx[7]= 0x07;
pui8DataTx[8]= 0x08;
pui8DataTx[9]= 0x09;
pui8DataTx[10]= 0x0A;
pui8DataTx[11]= 0x0B;
针对 MSB 数据的//TX 数据字节1.
pui8DataTxdataMSB[0]= 0x20;
pui8DataTxdataMSB[1]= 0x00;
pui8DataTxdataMSB[2]= 0x03;
pui8DataTxdataMSB[3]= 0x65;
pui8DataTxdataMSB[4]= 0x02;
pui8DataTxdataMSB[5]= 0x10;
pui8DataTxdataMSB[6]= 0x14;
pui8DataTxdataMSB[7]= 0x03;
pui8DataTxdataMSB[8]= 0x11;
pui8DataTxdataMSB[9]= 0x32;
pui8DataTxdataMSB[10]= 0xF4;
pui8DataTxdataMSB[11]= 0x0F;
针对 LSB 数据的//TX 数据字节2.
pui8DataTxdataLSB[0]= 0x11;
pui8DataTxdataLSB[1]= 0x57;
pui8DataTxdataLSB[2]= 0xB4;
pui8DataTxdataLSB[3]= 0xDC;
pui8DataTxdataLSB[4]= 0x55;
pui8DataTxdataLSB[5]= 0x5B;
pui8DataTxdataLSB[6]= 0xB1;
pui8DataTxdataLSB[7]= 0xB6;
pui8DataTxdataLSB[8]= 0x2C;
pui8DataTxdataLSB[9]= 0x58;
pui8DataTxdataLSB[10]= 0x79;
pui8DataTxdataLSB[11]= 0xA0;
while (1)
{
for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)
{
GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、0x00);
ui32Data =ui32Index;
// SSIDataPut (SSI0_BASE、0x00);
SSIDataPut (SSI0_BASE、pui8DataTx[ui32Data]);
SSIDataPut (SSI0_BASE、pui8DataTxdataMSB[ui32Data]);
SSIDataPut (SSI0_BASE、pui8DataTxdataLSB[ui32Data]);
/* for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)
{
ui32Data =ui32Index;
SSIDataPut (SSI0_BASE、* pui8DataTxdataMSB[ui32Data]);
for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)
{
ui32Data =ui32Index;
SSIDataPut (SSI0_BASE、* pui8DataTxdataLSB[ui32Data]);
}
}
*
GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_3、GPIO_PIN_3);
// SSIBusy (SSI0_BASE)
while (SSIBusy (SSI0_BASE))
{
}
}
}
}