18783990907 发表于 2023-2-3 11:58

spi dma传输传输完成标志位提前置位

   我在使用AT32F403Aspi过程中,spi dma传输传输完成标志位提前置位,比如传输六个字节在第四个字节传输后就置上传输完成标志位
dma模式设置为单次,发送流程为拉低片选->使能spi dma->=while等待传输完成标志->片选拉高->关闭spi dma
下图中黄色为片选信号,蓝色为时钟信号
C:\Users\GLR\Desktop\临时文件\AT32问题\6on6sd95jielxw0puwcyzk6u1_0.jpg

18783990907 发表于 2023-2-3 12:00

配置

aozima 发表于 2023-2-3 14:00

本帖最后由 aozima 于 2023-2-3 14:14 编辑

数据搬运完,DMA就结束了。

此时最后一部分数据还在FIFO(如果有)和移位寄存器里面,还要会才真正传输完成。波特率越低越明显。
需要确认SPI的状态才保险,可以打开SPI的完成中断(如果有),或干脆再轮询等一会。

18783990907 发表于 2023-2-3 16:55

aozima 发表于 2023-2-3 14:00
数据搬运完,DMA就结束了。

此时最后一部分数据还在FIFO(如果有)和移位寄存器里面,还要会才真正传输完 ...

发送完成标志位在开启DMA后是失效的,而且我也不能够延时,必须保证高性能,然后我这个片子spi最高只能到15M的速率。我现在启用硬件CS 但是cs引脚一直为低电平没有变化
页: [1]
查看完整版本: spi dma传输传输完成标志位提前置位