|
大家好,最近在使用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,麻烦各位大佬帮我看看,是哪里出了问题,谢谢了 |
L9663驱动开发
STM32G071C8的ADC问题,测量6路交流信号,端口使用PA2-PA7,信号来自电流互感器次级用20欧电阻转为电压信号,并联T4,通过1K,104滤波后到ADC引脚,个别芯片出现PA3结果是固定值,即使直接把引脚对地短短接,结果也是2000多个数,可能是什么原因
都是怎么学习TouchGFX的?
使用STM32H7A3的FMC接口驱动LCD 是否可以用DMA传输数据
STM32F3系列SDADC外部触发 DMA运输的bug
STM32G431 ADC只有软件触发,无法通过硬件触发
STM32F1 SPI2 无法通信
FLASH擦除轮询等待时CPU真的会轮询吗
串口DMA收发出现ORE错误
NUCLEO G474RE无法运行程序
微信公众号
手机版
点怀疑第一次调用这个回调函数时并不是接收到收据了,或许是发送完成了,此时若将DMA放弃调,后面自然没法进行数据的接收了,这个
地方好好做下代码确认。