主题中讨论的其他器件: EK-TM4C1294XL、 TM4C123、 EK-TM4C123GXL
工具/软件:Code Composer Studio
我 在 TivaEK-TM4C1294XL Launchpad 上的 TM4C1294NCPDT 的 SSI 上遇到了一些问题。 SSI 模块设为主机、发送数据时 SSI 模块不工作。 引脚时钟(PA2) 不变。 我使用 TI 技术讲座提供的代码 、如下所示。 当运行至代码'SIDataPut (SSI0_BASE、ui32Data)'时、 芯片上的所有 SSI 引脚不会改变、SSIDR 寄存器始终为零。 请帮我找出问题。 提前感谢...
#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 8.
const uint8_t pui8DataTx[NUM_SSI_DATA]=
{0x88、0xf8、0xf8、0x88、0x01、 0x1f、0x1F、0x01};
//逐位反转数字。
uint8_t
反向(uint8_t ui8Number)
{
uint8_t ui8Index;
uint8_t ui8 ReversedNumber = 0;
for (ui8Index=0;ui8Index<8;ui8Index++)
{
ui8ReversedNumber = ui8ReversedNumber << 1;
ui8ReversedNumber |=((1 << ui8Index)& ui8Number)>> ui8Index;
}
返回 ui8 ReversedNumber;
}
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);
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0XDAT0);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2);
SSIConfigSetExpClk (SSI0_BASE、ui32SysClkFreq、SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、10000、 16);
SSIEnable (SSI0_BASE);
while (1)
{
for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)
{
ui32Data =(Reverse (pui8DataTx[ui32Index])<< 8)+(1 << ui32Index);
SSIDataPut (SSI0_BASE、ui32Data);
while (SSIBusy (SSI0_BASE))
{
}
}
}
}
