打印
[应用相关]

SPI 开启 DMA 后无法读取外部 FLASH 数据

[复制链接]
77|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电竞孔乙己|  楼主 | 2025-3-20 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Questions:SPI 本身可以正常读取外部 SPI FLASH,当 SPI 开启 DMA 后发现不能正常读取到FLASH 内部的数据
Answer:
在 DMA 读数据请求挂起的时候,软件去读取数据寄存器(SPI_DT)不会清除 DMA 读请求,为了回避这一情况,SPI 开启 DMA 读取 FLASH 的时候,建议代码顺序如下:
1. 软件使能 SPI 的 DMA 读写请求
2. 使用 SPI 全双工模式发送数据
3. 传输完毕后关闭 DMA 发送通道
4. 清除 ROERR 标志(通过先读寄存器 SPI_STS 再读寄存器 SPI_DT 来清除)

使用特权

评论回复
沙发
我喜欢打游戏| | 2025-3-20 20:44 | 只看该作者
为啥要清除ROERR 标志

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

93

帖子

0

粉丝