大家好,最近在使用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,麻烦各位大佬帮我看看,是哪里出了问题,谢谢了 |
LL库变成黑色,不能用,怎么回事
按照文档标注ADC最高输入时钟为60兆, 将主频配置为120(原来是170M),AD再进行1分频/2分频/4分频,对应的转换位数12位,采样周期2.5,对应的频
关于stm32g431串口与FDCAN数据不同同时处理问题
STM32G431的CAN控制器在收发器开路后,程序发送数据后,TX高电平。RX低电平。
在使用FDCAN控制器发送字节有问题
STM32F4作为SPI从机,主机发送完数据后,从机没有正确进入中断
STM32F4作为SPI从机,在主机时钟结束后,MISO依然有输出。
keil无法对G474CBTx扇区擦除烧录较大程序是什么原因?
L9663驱动开发
CubeAI生产keil代码时出现报错。这个ai_platform.h文件在什么地方?
点怀疑第一次调用这个回调函数时并不是接收到收据了,或许是发送完成了,此时若将DMA放弃调,后面自然没法进行数据的接收了,这个
地方好好做下代码确认。