[STM32F3] 中断配置和 DMA 配置问题

[复制链接]
919|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 | 显示全部楼层
中断优先级设置得太低的话,高优先级中断可能会抢占它,数据就丢了,调高试试?
帛灿灿 发表于 2025-1-23 09:58 | 显示全部楼层
FSMC 的中断要在 NVIC 里手动启用,楼主看看是不是漏掉了这一步。
童雨竹 发表于 2025-1-23 10:00 | 显示全部楼层
DMA 传输模式记得用循环模式,不然传一轮就停了,得手动重新启动。
万图 发表于 2025-1-23 10:01 | 显示全部楼层
我用过 CubeMX 配置 FSMC 和 DMA,基本一键搞定,楼主可以试试,省事不少。
Wordsworth 发表于 2025-1-23 10:02 | 显示全部楼层
中断丢失可能是因为 ISR 处理时间太长了,优化一下中断里的代码试试。
Bblythe 发表于 2025-1-23 10:04 | 显示全部楼层
检查一下 DMA 通道和外设的映射关系,STM32 的 DMA 通道分配比较死板,别选错了。
Pulitzer 发表于 2025-1-23 10:05 | 显示全部楼层
如果传输还是不行,用调试工具看看 DMA 的状态寄存器,看看是哪里出的问题。
Uriah 发表于 2025-1-23 10:07 | 显示全部楼层
有时候外存储器的读写需要加延时,时序不对也会导致数据无法传输。
Clyde011 发表于 2025-1-23 10:08 | 显示全部楼层
如果搞不定的话,用逻辑分析仪抓一下 FSMC 的总线信号,确认读写波形是否正常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

996

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部