多从机SPI通信

2019-07-21 04:22发布

用STM32f4做主机,和3个从设备通过一个SPI用中断进行通信
现在TXE的中断进去了以后,往DR里面写命令
很奇葩的有两个问题
第一,SPI4->DR = 0x28;
用debug看了之后DR寄存器里是0x00ff,数据位是8bit
第二,现在DR里面写了0x00ff之后,TXE仍然置位,
RXNE一直进不去。。。。
什么个原因啊?为何不能往DR里正确写命令呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
xuande
2019-07-21 17:24
1、关于DR,你理解对了。
   两个物理buffer,虽然同名,但读、写的对象是分开的。

2、标志该变化但没有变化,可能与你的操作方法有关。
  单步调试时,芯片的中断往往观察不到。这种情况其他地方也会有。
  正确做法是:
  从触发SPI工作(即给DR赋值),到产生标志和中断,这期间要保证芯片连续运行,不能单步,也不能设置断点。
  这种调试方法,会经常用到。

一周热门 更多>