STM32F103的SPI读写程序,有while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET) 进行判断发送或接收缓冲器为空,而STM32F767确没有判断函数,那该怎么去判断F767的spi接受和发送缓冲器为空呢?
为啥我用STM32F767这个函数发送一个8位指令,返回的数据全是0????这两个问题怎么解决?????
谢谢各位大神!下面是程序
u8 SPI2_ReadWriteByte(u8 TxData):STM32F103 SPI读写程序
{
u8 retry=0;
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET) //检查指定的SPI标志位设置与否:发送缓存空标志位
{
retry++;
if(retry>200)return 0;
}
SPI_I2S_SendData(SPI2, TxData); //通过外设SPIx发送一个数据
retry=0;
while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET) //检查指定的SPI标志位设置与否:接受缓存非空标志位
{
retry++;
if(retry>200)return 0;
}
return SPI_I2S_ReceiveData(SPI2); //返回通过SPIx最近接收的数据
}
u8 SPI2_ReadWriteByte(u8 TxData):STM32F767 SPI读写程序
{
u8 Rxdata;
HAL_SPI_TransmitReceive(&SPI2_Handler,&TxData,&Rxdata,1, 1000);
return Rxdata; //返回收到的数据
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>