你好!
如题,lm3s9b96通过spi与93c56读写数据,存在如下问题:
(1)lm3s9b96-spi中与93c56读写数据在设置中是否应注意以下几项a.spi是低电平有效,所以在配置的时候不能只接用,而是把fss单独拉出来,通过io配置来用?b。在spi配置中选用SSI_FRF_NMW?
(2)我把ti公司提供的例程更改了一下:配置程序 SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIODirModeSet(GPIO_PORTA_BASE, SSI_CS, GPIO_DIR_MODE_OUT); // 设置 GPIO PA3为输出口
GPIOPadConfigSet(GPIO_PORTA_BASE, SSI_CS, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);
GPIOPinConfigure(GPIO_PA2_SSI0CLK);
GPIOPinConfigure(GPIO_PA4_SSI0RX);
GPIOPinConfigure(GPIO_PA5_SSI0TX);
GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_2);
SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_NMW,SSI_MODE_MASTER, 1000000, 8);
SSIEnable(SSI0_BASE);
(3)应用程序:
GPIOPinWrite(GPIO_PORTA_BASE, SSI_CS, SSI_CS);
while(SSIDataGetNonBlocking(SSI0_BASE, &ulDataRx[0]))
{
}
ulDataTx[0] = 's';
ulDataTx[1] = 'p';
ulDataTx[2] = 'i';
while(SSIDataGetNonBlocking(SSI0_BASE, &ulDataRx[0]))
{
}
for(ulindex = 0; ulindex < NUM_SSI_DATA; ulindex++)
{
SSIDataPut(SSI0_BASE, ulDataTx[ulindex]);
}
GPIOPinWrite(GPIO_PORTA_BASE, SSI_CS, 0);
GPIOPinWrite(GPIO_PORTA_BASE, SSI_CS, SSI_CS);
while(!SSIBusy(SSI0_BASE))
{
}
for(ulindex = 0; ulindex < NUM_SSI_DATA; ulindex++)
{
SSIDataGet(SSI0_BASE, &ulDataRx[ulindex]);
}
GPIOPinWrite(GPIO_PORTA_BASE, SSI_CS, 0);
(4)通过示波器观察SSI0TX的数据正确,但SSI0RX不正确(pGpGpGuF),请问那个地方出现问题?请各位专家给与答复!