请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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/调试器时相同的代码工作。
任何建议/解决方法都很好。
谢谢你
库马尔