|
应用需要读取AS5145 的数据,每次读取18位有效数据,也就是读3个字节。 想使用DMA,但是只能配置一个DMA SPI_RX,接收的串口用掉了。 现在遇到的情况是: 1.当不使用DMA情况下,在Full-Deplex模式下,使用HAL_SPI_TransmitReceive 接收数据没有问题。 2.不使用DMA,在Receive Only Master模式下,使用HAL_SPI_Receive接收数据,就会出现数据错位的情况第一次读取和第二次读取直接错位8个字节,然后就保持不变,见下图。3.使用DMA,在Receive Only Master模式下,使用HAL_SPI_Receive_DMA接收数据,就会出现数据错位的情况第一次读取和第二次读取直接错位8个字节。 我判断的问题是,上一次读取的缓存还在,然后在下一次读取的时候 填充到第一个字节,这样照成的问题是下一次 读取到的第一个字节 是上一次的最后一个字节,不知道我这样的理解对不对,实际上问题可能更加复杂。 |
无DMA Receive Only接收数据
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
DMA用的时候,需要重新初始化,或清一下标志。
数据是DMA直接传到RAM的吧,如果是的话,不管你读不读RAM,DMA是不知道的。
谢谢,我暂时用比较傻的办法解决了,不过我用的是 HAL的DMA Receive 方法,都是自动设置的,只用一个DMA接收的时候有问题,所以才怀疑是有问题