
大家好,最近在使用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,麻烦各位大佬帮我看看,是哪里出了问题,谢谢了 |
STM32G474CBT6上电瞬间用示波器测得io口产生较大电压(浪涌电压)
STM432G4单片机IAP程序+上位机
关于STM32G474 双BANK的测试问题
STM32G473 flash擦除时程序卡死
定时器使用DMA突发传输功能时,传入指针从常量数组改为变量数组后,传输功能异常。测试官方用例一样,是何原因?
STSPIN32G4内部驱动电压输出问题
comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM?
STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能 寄存器USEF=1
STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?
workbench6.3.2生成的代码,无法用pilot电机参数识别,无法通讯
点怀疑第一次调用这个回调函数时并不是接收到收据了,或许是发送完成了,此时若将DMA放弃调,后面自然没法进行数据的接收了,这个
地方好好做下代码确认。