请问STM32的GPIO中断开启DMA读取数据发生移位怎么解决?

2019-07-14 15:31发布

设置PC6为上升沿触发中断,触发后中断回调函数开启DMA读取9个数据,然后下降沿时关闭DMA,但是读取到的数据会发生右移,这是什么原因,怎么解决呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
加欢加欢
2019-07-15 20:24
谦谦三君子 发表于 2018-12-4 15:38
DMA_REQ信号是什么?是说DMA_ISR吗?

本帖最后由 fury-roar 于 2017-5-9 14:47 编辑

不是dma_isr.
你的问题是不是:
dma搬移的第一个数据错误,有效数据从第二个开始?
spi准备好数据,请求dma搬数前,会将信号dma_req置为有效值,然后dma开始数据的搬移。你这种情况是不是dma使能后,此时SPI还未准备好数据但dma_req信号为有效值,导致dma错误地搬移了一个数据。可以在dma使能前,先将dma_req信号置为无效值将其清除。
你在spi相应的寄存器中找找看,有没有关于dma_req的描述。

一周热门 更多>