
大家好,最近在使用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,麻烦各位大佬帮我看看,是哪里出了问题,谢谢了 |
SD卡初始化第一次初始化后再次初始化时会失败。
stm32G4的SPI通信问题
关于三轴陀螺仪 I3G4250D
STM32N6570-DK开发板,哪里还有卖的?
关于STM32G474 双BANK的测试问题
STM32G474CBT6上电瞬间用示波器测得io口产生较大电压(浪涌电压)
STM432G4单片机IAP程序+上位机
STM32G473 flash擦除时程序卡死
定时器使用DMA突发传输功能时,传入指针从常量数组改为变量数组后,传输功能异常。测试官方用例一样,是何原因?
STSPIN32G4内部驱动电压输出问题
点怀疑第一次调用这个回调函数时并不是接收到收据了,或许是发送完成了,此时若将DMA放弃调,后面自然没法进行数据的接收了,这个
地方好好做下代码确认。