SPI + DMA 传输,提前触发DMA 完成中断如何解决
STM32H7:
SPI4 传输 + DMA
开启完成中断;
实际波形如上:
就是SPI 10个字节还没有发完,就触发了DMA Rx传输完成中断;
不知道有没有大神遇到过,是因为 SPI FIFO 导致?我开的是 SPI 接收通道的 DMA 完成中断呀;
你能描述多点吗? 你的文件只是个IOC配置,用到SPI1 SPI4都做MASTER.
会不会是你数据处理或GPIO翻转方面的原因? git@gitee.com:xiaofei558008/tst.git
https://gitee.com/xiaofei558008/tst.git
https://gitee.com/xiaofei558008/tst
代码推送到 gitee 上了;main.c 的default task里 tam8140 发送10个字节,等待 dma spi 接收中断,使能事件;
default task 获取事件后继续执行,处理数据;
dma传输后如果马上控制转换的话,应该是先dma完成中断,在这个中断里面启用对应外设的完成中断,在传输完成中断里面切换状态
适用于spi的cs控制,485的de控制等 官网没有demo程序吗? 改成 g431的板子,分分钟解决问题,一切正常了
xiaofei558008 发表于 2025-5-23 10:56
改成 g431的板子,分分钟解决问题,一切正常了
怎么一下子就能从STM32H7系列切换到STM32G431系列?硬件备选方案打PCB板这么快的吗?{:victory:} DMA 中断提前来没关系,只要你在 DMA 回调中 加一段检查 SPI 的状态 如果开了FIFO,需要检查FIFO为空才可以判定是完成吧 codingtuzi 发表于 2025-6-4 22:30
如果开了FIFO,需要检查FIFO为空才可以判定是完成吧
DMA 传输,没法判断吧?全自动了 会不会是发生了传输半完成中断呢?
页:
[1]