打印
[STM32F3]

中断配置和 DMA 配置问题

[复制链接]
495|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kzlzqi|  楼主 | 2025-1-21 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断配置和 DMA 配置问题
外部存储器的读写操作通常需要通过中断或 DMA 来进行高效的数据传输。
如果中断或 DMA 配置不当,可能导致数据传输失败。

常见问题:
未正确配置 DMA 或中断。
中断优先级设置不当,导致中断丢失。

解决方案:
检查 DMA 配置:在使用 DMA 进行外部存储器读写时,确保 DMA 配置正确,包括数据传输方向、传输模式和通道选择。
配置中断:确保正确配置 FSMC 中断,并且在 NVIC 中设置合适的优先级。
使用 STM32CubeMX 配置 DMA 和中断:使用 STM32CubeMX 配置 DMA 和中断,可以自动生成正确的初始化代码。

使用特权

评论回复
沙发
SophiaOP| | 2025-1-22 21:55 | 只看该作者
dma配置需要操作哪些寄存器?

使用特权

评论回复
板凳
公羊子丹| | 2025-1-23 09:54 | 只看该作者
楼主检查过 DMA 的传输方向吗?外存读写的话,这个方向配置很容易出错。

使用特权

评论回复
地板
周半梅| | 2025-1-23 09:57 | 只看该作者
中断优先级设置得太低的话,高优先级中断可能会抢占它,数据就丢了,调高试试?

使用特权

评论回复
5
帛灿灿| | 2025-1-23 09:58 | 只看该作者
FSMC 的中断要在 NVIC 里手动启用,楼主看看是不是漏掉了这一步。

使用特权

评论回复
6
童雨竹| | 2025-1-23 10:00 | 只看该作者
DMA 传输模式记得用循环模式,不然传一轮就停了,得手动重新启动。

使用特权

评论回复
7
万图| | 2025-1-23 10:01 | 只看该作者
我用过 CubeMX 配置 FSMC 和 DMA,基本一键搞定,楼主可以试试,省事不少。

使用特权

评论回复
8
Wordsworth| | 2025-1-23 10:02 | 只看该作者
中断丢失可能是因为 ISR 处理时间太长了,优化一下中断里的代码试试。

使用特权

评论回复
9
Bblythe| | 2025-1-23 10:04 | 只看该作者
检查一下 DMA 通道和外设的映射关系,STM32 的 DMA 通道分配比较死板,别选错了。

使用特权

评论回复
10
Pulitzer| | 2025-1-23 10:05 | 只看该作者
如果传输还是不行,用调试工具看看 DMA 的状态寄存器,看看是哪里出的问题。

使用特权

评论回复
11
Uriah| | 2025-1-23 10:07 | 只看该作者
有时候外存储器的读写需要加延时,时序不对也会导致数据无法传输。

使用特权

评论回复
12
Clyde011| | 2025-1-23 10:08 | 只看该作者
如果搞不定的话,用逻辑分析仪抓一下 FSMC 的总线信号,确认读写波形是否正常。

使用特权

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

本版积分规则

117

主题

885

帖子

2

粉丝