多从机SPI通信

2019-07-21 04:22发布

用STM32f4做主机,和3个从设备通过一个SPI用中断进行通信
现在TXE的中断进去了以后,往DR里面写命令
很奇葩的有两个问题
第一,SPI4->DR = 0x28;
用debug看了之后DR寄存器里是0x00ff,数据位是8bit
第二,现在DR里面写了0x00ff之后,TXE仍然置位,
RXNE一直进不去。。。。
什么个原因啊?为何不能往DR里正确写命令呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
yyisme1988
2019-07-21 11:35
回复【2楼】xuande:
---------------------------------
感谢你的回复
我明白你的意思,发送时,写入数据寄存器DR后发送至发送缓存器,同时接受到数据后,进入接受混存器后从DR中读取
你的意思是我debug中SPI4->DR中显示的数据时由从器件收到的数据?而不是我发送的指令?
那么,如果是这样的话,为何RXNE没有置位呢?说不通啊
而且,在TXE中断中,我向DR写入命令后,应该会复位TXE,但实际debug来看并没有复位,而是一直死在TXE的中断里面了
何况,debug每一步运行,应该可以观测到TXE=0 RXNE=1的吧。。。。。。
望解答谢谢

一周热门 更多>