小弟目前在调两片STM32通过SPI通讯的程序,数据量比较大,采用DMA通讯的方式。一片STM32作主机,一片STM32作从机;从机没用片选。正常通讯流程调通;增加异常处理机制时遇到问题。模拟主机发送数据,由于干扰,多发送了一个时钟周期或几个,从机收到的数据CRC不对;则重新初始化,反初始化从机SPIDMA的寄存器;发现SPI和DMA的其他有地址的寄存器都能初始化反初始化成功,而移位寄存器没有重置。下次收到的数据依然错位。翻阅了一下数据手册,没找到与复位移位寄存器相关的操作。谁遇到过类似问题,不吝赐教,在下万分感谢。
一周热门 更多>