求助STM32关于SPI问题!!状态寄存器BSY位永远为1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助STM32关于SPI问题!!状态寄存器BSY位永远为1相关的知识,希望对你有一定的参考价值。

SPI1的控制寄存器中只设置了主模式,SPI1使能。SPI1的RCC时钟已打开,GPIO5,6,7推挽输出。在模拟时,发送数据时无法把数据写入SPI1_DR永远是0,并且一旦执行赋值语句后SPI1_SR永远为0x0080,BSY位被置高,永远无法发送或接收。请教各位高手帮忙解答!

朋友,
你的SPI配置的有问题。网上有很多资料供参考。代码直接调用的。你去开源电子网,资料完全开源。
参考技术A 关注这个问题

STM32SPI通信仿真没问题,下载后不能接收

参考技术A 可以接收。
软件必须遵循下述过程,发送和接收数据。1.设置SPE位为1,使能SPI模块。2.在SPI_DR寄存器中写入第一个要发送的数据,这个操作会清除TXE标志。4.等待RXNE=1,然后接收最后一个数据。
等待TXE=1,然后写入第二个要发送的数据。等待RXNE=1,然后读出SPI_DR寄存器并获得第一个接收到的数据,读SPI_DR的同时清除了RXNE位。重复这些操作,发送后续的数据同时接收n-1个数据。等待TXE=1,在BSY=0之后关闭SPI模块。

以上是关于求助STM32关于SPI问题!!状态寄存器BSY位永远为1的主要内容,如果未能解决你的问题,请参考以下文章

stm32控制LED的亮灭

STM32 SPI数据打包

STM32学习笔记(16)——(SPI续)读写串行Flash

STM32发现F3 SPI环回RXFIFO收不到数据

stm32-SPI通讯原理详解

为啥我在STM32上不能通过SPI读取寄存器?