请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 您好!
我在引导加载程序中遇到 SPI 读取状态寄存器问题。 问题似乎仅在连接电源时出现、但在连接调试器(MikroeProg)时、相同的代码段会起作用。
我似乎有点奇怪、为什么它失败了。 故障似乎是在读取状态寄存器时发生的。
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
GPIOPinTypeGPIOOutput (GPIO_PORTQ_BASE、GPIO_PIN_0|GPIO_PIN_1_GPIO_PIN_2|GPIO_PIN_4);GPIOPINTYPE_GPIOPEN_BASE
(GPIOPORTN) GPIO_PIN_4);
GPIOPinTypeGPIOInput (GPIO_PORTQ_BASE、GPIO_PIN_3);
SPI_DESELECT ();
SysCtlPeripheralReset (SYSCTL_PERIPH_SSI3);
SysCtlPeripheralEnable (SYSCTL_Periph_SSI3);
GPIOPinConfigure (GPIO_PQ0_SSI3CLK);
GPIOPinConfigure (GPIO_PQ3_SSI3XDAT1);
GPIOPinConfigure (GPIO_PQ2_SSI3XDAT0);
GPIOPINWrite (GPIO_PORTQ_BASE、 GPIO_PIN_4、GPIO_PIN_4);//禁用 WP
GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_5、GPIO_PIN_5);//禁用保持
GPIOPinTypeSSI (GPIO_PORTQ_BASE、GPIO_PIN_0|GPIO_PIN_2 | GPIO_PIN_3);
USC32_SYSC_UST_SYSCL
(USTRK、SYSC_USTRK)| SysClt_SYSC_SYSC_C000_SYSC_SYSC_SYSCL (32_SYSC_SYSC_SYSCL)
SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、SST25_FLASH_SPI_RATE、8);
SSIEnable (SSI3_base);
{
无符号长整型温度;
while (SSIDataGetNonBlocking (SSI3_base、Temp))
{
}
}
SPI_WRITE (SST25_CMD_RDSR);
uint8_t SPI_val = SPI_WRITE (0);//虚拟
SPI_DESELECT ();
//while (SPI_val!= 0x02);//错误! 出现故障。
目前、我已经注释掉了对0x02的检查。
我查看了数据表、了解我是否错过了任何初始化、但找不到任何东西。 如果有人在连接电源时在引导加载程序中发现此操作失败的原因、并且在使用 JTAG/调试器时相同的代码工作。
任何建议/解决方法都很好。
谢谢你
库马尔