初级会员

- 积分
- 53
- 金钱
- 53
- 注册时间
- 2020-10-13
- 在线时间
- 17 小时
|

楼主 |
发表于 2020-11-2 09:12:09
|
显示全部楼层
谢谢楼主的回答!一个开始时候也考虑是不是SPI状态寄存器的发送和接收位导致的后来发现不是这个原因,程序参考的正点原子教程中的SPI实验部分(库函数版本),代码如下:
还有一点困惑的是,正点原子的代码在把SPI配置成软件管理cs信号,但是在配置片选信号的时候仅仅初始化了GPIO的PB14,并没有将NSS使能为GPIO的步骤(SPI_SSOutputCmd(SPI1, ENABLE);),这个是否合理呢?
"u8 SPI1_ReadWriteByte(u8 TxData)
{
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}//等待发送区空
SPI_I2S_SendData(SPI1, TxData);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){} //等待接收完一个byte
return SPI_I2S_ReceiveData(SPI1); //
}"
|
|