fix[STM32][I2C]: allow INT and DMA flags to coexist in hard i2c config#11330
fix[STM32][I2C]: allow INT and DMA flags to coexist in hard i2c config#11330wdfk-prog wants to merge 1 commit intoRT-Thread:masterfrom
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: bsp_stm32Reviewers: @Liang1795 @hamburger-os @wdfk-prog Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-04-14 15:47 CST)
📝 Review Instructions
|
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
当前
stm32_get_info()中 I2C1、I2C3 和 I2C4 的 TX/RX 宏配置仍使用INT与DMA的#elif互斥分支。启用BSP_I2C*_TX_USING_INT或BSP_I2C*_RX_USING_INT后,会屏蔽对应的 DMA 标志和 DMA 配置,导致一旦启用 INT 就无法继续使用 DMA。你的解决方案是什么 (what is your solution)
将 I2C1、I2C3 和 I2C4 的 TX/RX 配置改为与 I2C2 一致的独立
#if判断,分别累计RT_DEVICE_FLAG_INT_*与RT_DEVICE_FLAG_DMA_*,并在启用 DMA 时继续保留dma_tx/dma_rx配置。这样在同时打开 INT 和 DMA 宏时,运行时仍可按现有逻辑优先选择 DMA,在不满足 DMA 条件时回退到 IT 路径。请提供验证的bsp和config (provide the config and bsp)
BSP:
.config:
CONFIG_BSP_USING_HARD_I2CCONFIG_BSP_I2C_USING_IRQBSP_I2C*_TX_USING_INT和BSP_I2C*_TX_USING_DMABSP_I2C*_RX_USING_INT和BSP_I2C*_RX_USING_DMAaction:
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up