完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
开发板:AT-START-F403A V1.1
我使用官方标准版RT-Thread BSP里的工程时,通过ENV工具启用了SPI和I2C ,但是启用了SPI RX/TX DMA之后I2C 就会报错,后来分析源码发现代码里有条件宏,启用了SPI后就会屏蔽I2C的某些宏定义,如果同时要用到SPI和I2C 的话有没有什么办法可以解决这个冲突? |
|
相关推荐
1个回答
|
|
|
在 AT32F403A 上同时使用 SPI DMA 和 I2C DMA 时出现冲突,主要是因为 BSP 中的 DMA 通道资源分配冲突或条件编译宏限制了共存。以下是详细的解决方案: 1. 检查并修正 DMA 通道冲突SPI 和 I2C 的 DMA 请求可能映射到了相同的 DMA 通道(同一 DMA 的同一通道不能复用)。请按以下步骤调整: (1) 查询 DMA 请求映射表参考 AT32F403A 数据手册(或直接查看库文件
(2) 修改 BSP 中的 DMA 分配在 (3) 检查 DMA 中断冲突确保不同 DMA 通道的中断向量已正确注册,并在 2. 修正条件编译宏BSP 中可能存在互斥的条件宏(例如启用 SPI DMA 时禁用 I2C DMA)。解决步骤如下: (1) 定位问题宏搜索 BSP 代码(如 (2) 修改宏逻辑取消 SPI 和 I2C DMA 的互斥关系,允许共存: (3) 在 ENV 中同时启用在 3. 验证资源分配检查工程全局的 DMA 和中断资源是否冲突:
4. 完善驱动初始化确保 DMA 初始化顺序正确,在 5. 测试与调试
补充说明
通过以上步骤,SPI DMA 与 I2C DMA 的冲突问题应能得到解决。核心思路是确保硬件通道无冲突并解除软件层的条件宏限制。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
184个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1212 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1776 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2156 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1777 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2006 浏览 0 评论
1465浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1767浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
364浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
422浏览 3评论
421浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:11 , Processed in 0.949368 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1731
