STM32F4 SPI通讯可以发送了,但是接收还是出现点问题,请问具体解决方案

2019-07-21 05:16发布

          废话不说,上图两张。主函数只有一句话while(){SPI2_ReadWriteByte(0xAA);

发送接收函数如下:
uint8_t SPI2_ReadWriteByte(uint8_t TxData)
{      
while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET);

  /*!< Send byte through the SPI1 peripheral */
  SPI_I2S_SendData(SPIx, TxData);

  /*!< Wait to receive a byte */
  while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);

  /*!< Return the byte read from the SPI bus */
  return SPI_I2S_ReceiveData(SPIx);
}

SCK的时钟


MOSI的时钟。看样子已经发送出0xAA 了,但是为什么接收到的是0?

但是为什么每次用串口发送MISO接收到的数据出来时都是0。

如果打开接收中断还会陷入死机的状态。
死在了这句话
 while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) == RESET);





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。