
大家好,最近在使用SPI的DMA时碰到点问题,麻烦大家给看看,谢谢了 上图是调用的SPI发送接收函数,2ms执行一次,buffer是16bit,SPI_BUFFERSIZE为1,DMA配置为half word,circular模式。 接收buffer在回调函数中进行赋值,每次接收发送完一帧数据后会执行一次Abort函数来终止DMA连续发送。 问题如下: 按照图中所示的代码执行是没有问题的,spiData.in.key中可以正确赋值。但如果我将赋值语句放在了Abort后,spiData.in.key得到的值就一直是0,感觉aRxBuffer中的值在Abort函数中被清零了。 通过排查,发现是在Abort函数里的SPI_EndRxTxTransaction子函数会清,但这个函数我看了半天也没看懂为啥会清buffer,麻烦各位大佬帮我看看,是哪里出了问题,谢谢了 |
STM32G473RC多个定时器同步的问题
FW_H7 V1.12.1-HAL库DMA双缓冲配置
STM32CubeG4 HAL库 V1.6.1 版本中的 stm32g4xx_hal.h 文件宏定义BUG
利用stm32f412 的SPI 的DMA 模式读取外部ADC数据如何提高效率
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
请教SPI用LL读取的问题
STM32G474VET6如何配置HRTIM的中心对齐模式
F103和G474的180°移相區別
STM32G474RBT3 HRTIME 与 TIM 相位差。
点怀疑第一次调用这个回调函数时并不是接收到收据了,或许是发送完成了,此时若将DMA放弃调,后面自然没法进行数据的接收了,这个
地方好好做下代码确认。