调试时在调用如下SPI函数时,发现以下两个问题:
1、如果在第三行语句while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);处设断点,将会卡死在这个while语句内,并导致看门狗复位;
2、全速运行,会触发看门狗复位程序,程序只调用spi,无中断,确定为spi导致,SPI速率由16M降至2M,则短时内不见复位;
uint8_t SPI2_SendOneByte(uint8_t u8Data)//SPI2发送一字节
{/* 等待发送缓冲区为空, TXE 事件 */
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
/* 写入数据寄存器,把要写入的数据写入发送缓冲区 */
SPI_I2S_SendData(SPI2, u8Data);
/* 等待接收缓冲区非空, RXNE 事件 */
while (SPI_I2S_GetF