请教一个STM32 DMA for SPI 传输的一个问题

2019-12-15 12:16发布

DMA寄存器中的ISR中的TCIFx传输完成标志,到底指的是哪阶段的传输完成?为什么在TX_DMA的传输完成中断后开启RX_DMA会接收到数据?而在开启RX_DMA之前加个延时就不会接到数据.难道DMA通道或者SPI有个FIFO?可是资料里没写啊.请指教~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
lcofjp
1楼-- · 2019-12-15 16:42
DMA传输完成是已经把数据全部的都发送到了SPI的缓冲区中,而并不是SPI发送完毕。
ioro55555
2楼-- · 2019-12-15 22:10
 精彩回答 2  元偷偷看……
Alvin007
3楼-- · 2019-12-16 01:22

(原文件名:SPI TXE.jpg)

强烈建议Armok把水印的透明效果加强~
syuanwang
4楼-- · 2019-12-16 04:20
我今天刚刚开始学SPI,仔细的看了reference
二楼正解,
DMA的TC中断之后还要等两个数据的发出,因为当第n个数据写入SPI_DR的时候,SPI的移位寄存器保存着第(n-1)个数据,但此时还没有发出一个bit。
dream_99
5楼-- · 2019-12-16 06:21
回复【4楼】syuanwang 昙花公公
-----------------------------------------------------------------------

学习
sinc_mark
6楼-- · 2019-12-16 10:12
哪接收中断的时候呢?如果要接收64个字节,在发生接收中断的时候,实际收到的数据到底是多少?64?62?此时应该禁止接收中断么?

一周热门 更多>