Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[components][I2C] 添加I2C配置结构体 #9087

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

wdfk-prog
Copy link
Contributor

@wdfk-prog wdfk-prog commented Jun 23, 2024

拉取/合并请求描述:(PR description)

[

为什么提交这份PR (why to submit this PR)

  1. [components][I2C] 添加I2C配置结构体
  2. [STM32][I2C] [添加阻塞模式并区分 POLL、INT、DMA 模式]

你的解决方案是什么 (what is your solution)

请提供验证的bsp和config (provide the config and bsp)

  • BSP:STM32H750
  • action:

i2c.h 修改名称原因

  • STM32 CUBEMX 生成 i2c.h 与 drivers中i2c.h产生冲突,故此修改

STM32 config.h 删除timing配置原因

  • timing配置与I2C速率有关,默认配置无法保证每个设备生产的速率达到要求
  • STM32 timing 手动计算复杂,所以使用control方式配置传入

允许组合,并且可以根据配置精简代码与编译

  • 没有采用drv_uart方式调用

验证

  • 使用阻塞方式读取STH3X
    image

]

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 代码是高质量的 Code in this PR is of high quality
  • 已经使用formatting 等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification

@wdfk-prog
Copy link
Contributor Author

  • 另外BSP的Konfig需要找个方式统一一下;现在我只能把一些有关STM32的驱动配置放在STM32H70的模板工程下;
  • 这样换个工程没法很好的使用;

@sp-cai
Copy link
Contributor

sp-cai commented Jun 24, 2024

已经有:
RT_DEVICE_FLAG_DMA_RX
RT_DEVICE_FLAG_DMA_TX
RT_DEVICE_FLAG_INT_TX
RT_DEVICE_FLAG_INT_RX
实现区分POLL,INT,DMA方式了,为什么还要加:
RT_I2C_USING_POLL
RT_I2C_USING_INT
RT_I2C_USING_DMA
这三个?而且还是多选一的,如果我有两个 I2C,一个要用 DMA 方式,另一个要用 INT 方式,怎么办?
如果是想自由精简代码,也不应该用单选,可以改为多选方式。

@wdfk-prog
Copy link
Contributor Author

wdfk-prog commented Jun 24, 2024

已经有: RT_DEVICE_FLAG_DMA_RX RT_DEVICE_FLAG_DMA_TX RT_DEVICE_FLAG_INT_TX RT_DEVICE_FLAG_INT_RX 实现区分POLL,INT,DMA方式了,为什么还要加: RT_I2C_USING_POLL RT_I2C_USING_INT RT_I2C_USING_DMA 这三个?而且还是多选一的,如果我有两个 I2C,一个要用 DMA 方式,另一个要用 INT 方式,怎么办? 如果是想自由精简代码,也不应该用单选,可以改为多选方式。

  • 有道理,偷懒了.
  • 现在已修改为STM32内部自己实现POLL,INT,DMA方式;允许组合,并且可以根据配置精简代码与编译
  • 相关配置编写如下
menuconfig BSP_USING_I2C
    bool "Enable I2C"
    default n
    select RT_USING_I2C
    if BSP_USING_I2C
        choice
            prompt "Choice I2C mode"
            default BSP_SOFTWARE_I2C
            config BSP_SOFTWARE_I2C
                bool "Enable I2C BUS (software simulation)"
                select RT_USING_I2C_BITOPS
                select RT_USING_PIN
                default n
            config BSP_HARDWARE_I2C
                bool "Enable I2C BUS (hardware)"
        endchoice
        if BSP_SOFTWARE_I2C
            menuconfig BSP_USING_I2C1
                bool "Enable I2C1 BUS (software simulation)"
                default n
                if BSP_USING_I2C1
                    comment "Notice: PB6 --> 22; PB7 --> 23" 
                    config BSP_I2C1_SCL_PIN
                        int "I2C1 scl pin number"
                        range 0 175
                        default 22
                    config BSP_I2C1_SDA_PIN
                        int "I2C1 sda pin number"
                        range 0 175
                        default 23
                endif
            menuconfig BSP_USING_I2C2
                bool "Enable I2C2 BUS (software simulation)"
                default n
                if BSP_USING_I2C2
                    comment "Notice: PH13 --> 125; PH15 --> 127"
                    config BSP_I2C2_SCL_PIN
                        int "i2c2 scl pin number"
                        range 1 176
                        default 127
                    config BSP_I2C2_SDA_PIN
                        int "I2C2 sda pin number"
                        range 0 175
                        default 125
                endif
            menuconfig BSP_USING_I2C3
                bool "Enable I2C3 BUS (software simulation)"
                default n
                if BSP_USING_I2C3
                    comment "Notice: PH12 --> 124; PH11 --> 123"
                    config BSP_I2C3_SCL_PIN
                        int "i2c3 scl pin number"
                        range 0 175
                        default 123
                    config BSP_I2C3_SDA_PIN
                        int "I2C3 sda pin number"
                        range 0 175
                        default 124
                endif
        endif

        if BSP_HARDWARE_I2C
            menuconfig BSP_USING_HARD_I2C1
                bool "Enable I2C1 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C1
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C1_TX_USING_POLL
                        config BSP_I2C1_TX_USING_POLL
                            bool "BSP_I2C1_TX_USING_POLL"
                        config BSP_I2C1_TX_USING_INT
                            bool "BSP_I2C1_TX_USING_INT"
                        config BSP_I2C1_TX_USING_DMA
                            bool "BSP_I2C1_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C1_RX_USING_POLL
                        config BSP_I2C1_RX_USING_POLL
                            bool "BSP_I2C1_RX_USING_POLL"
                        config BSP_I2C1_RX_USING_INT
                            bool "BSP_I2C1_RX_USING_INT"
                        config BSP_I2C1_RX_USING_DMA
                            bool "BSP_I2C1_RX_USING_DMA"
                    endchoice
                endif

            menuconfig BSP_USING_HARD_I2C2
                bool "Enable I2C2 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C2
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C2_TX_USING_POLL
                        config BSP_I2C2_TX_USING_POLL
                            bool "BSP_I2C2_TX_USING_POLL"
                        config BSP_I2C2_TX_USING_INT
                            bool "BSP_I2C2_TX_USING_INT"
                        config BSP_I2C2_TX_USING_DMA
                            bool "BSP_I2C2_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C2_RX_USING_POLL
                        config BSP_I2C2_RX_USING_POLL
                            bool "BSP_I2C2_RX_USING_POLL"
                        config BSP_I2C2_RX_USING_INT
                            bool "BSP_I2C2_RX_USING_INT"
                        config BSP_I2C2_RX_USING_DMA
                            bool "BSP_I2C2_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C3
                bool "Enable I2C3 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C3
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C3_TX_USING_POLL
                            bool "BSP_I2C3_TX_USING_POLL"
                        config BSP_I2C3_TX_USING_INT
                            bool "BSP_I2C3_TX_USING_INT"
                        config BSP_I2C3_TX_USING_DMA
                            bool "BSP_I2C3_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C3_RX_USING_POLL
                        config BSP_I2C3_RX_USING_POLL
                            bool "BSP_I2C3_RX_USING_POLL"
                        config BSP_I2C3_RX_USING_INT
                            bool "BSP_I2C3_RX_USING_INT"
                        config BSP_I2C3_RX_USING_DMA
                            bool "BSP_I2C3_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C4
                bool "Enable I2C4 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C4
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C4_TX_USING_POLL
                            bool "BSP_I2C4_TX_USING_POLL"
                        config BSP_I2C4_TX_USING_INT
                            bool "BSP_I2C4_TX_USING_INT"
                        config BSP_I2C4_TX_USING_DMA
                            bool "BSP_I2C4_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C4_RX_USING_POLL
                        config BSP_I2C4_RX_USING_POLL
                            bool "BSP_I2C4_RX_USING_POLL"
                        config BSP_I2C4_RX_USING_INT
                            bool "BSP_I2C4_RX_USING_INT"
                        config BSP_I2C4_RX_USING_DMA
                            bool "BSP_I2C4_RX_USING_DMA"
                    endchoice
                endif
        endif
    endif

@wdfk-prog wdfk-prog changed the title [components][I2C] 添加I2C驱动阻塞方式 [components][I2C] 添加I2C配置结构体 Jun 24, 2024
@sp-cai
Copy link
Contributor

sp-cai commented Jun 26, 2024

已经有: RT_DEVICE_FLAG_DMA_RX RT_DEVICE_FLAG_DMA_TX RT_DEVICE_FLAG_INT_TX RT_DEVICE_FLAG_INT_RX 实现区分POLL,INT,DMA方式了,为什么还要加: RT_I2C_USING_POLL RT_I2C_USING_INT RT_I2C_USING_DMA 这三个?而且还是多选一的,如果我有两个 I2C,一个要用 DMA 方式,另一个要用 INT 方式,怎么办? 如果是想自由精简代码,也不应该用单选,可以改为多选方式。

  • 有道理,偷懒了.
  • 现在已修改为STM32内部自己实现POLL,INT,DMA方式;允许组合,并且可以根据配置精简代码与编译
  • 相关配置编写如下
menuconfig BSP_USING_I2C
    bool "Enable I2C"
    default n
    select RT_USING_I2C
    if BSP_USING_I2C
        choice
            prompt "Choice I2C mode"
            default BSP_SOFTWARE_I2C
            config BSP_SOFTWARE_I2C
                bool "Enable I2C BUS (software simulation)"
                select RT_USING_I2C_BITOPS
                select RT_USING_PIN
                default n
            config BSP_HARDWARE_I2C
                bool "Enable I2C BUS (hardware)"
        endchoice
        if BSP_SOFTWARE_I2C
            menuconfig BSP_USING_I2C1
                bool "Enable I2C1 BUS (software simulation)"
                default n
                if BSP_USING_I2C1
                    comment "Notice: PB6 --> 22; PB7 --> 23" 
                    config BSP_I2C1_SCL_PIN
                        int "I2C1 scl pin number"
                        range 0 175
                        default 22
                    config BSP_I2C1_SDA_PIN
                        int "I2C1 sda pin number"
                        range 0 175
                        default 23
                endif
            menuconfig BSP_USING_I2C2
                bool "Enable I2C2 BUS (software simulation)"
                default n
                if BSP_USING_I2C2
                    comment "Notice: PH13 --> 125; PH15 --> 127"
                    config BSP_I2C2_SCL_PIN
                        int "i2c2 scl pin number"
                        range 1 176
                        default 127
                    config BSP_I2C2_SDA_PIN
                        int "I2C2 sda pin number"
                        range 0 175
                        default 125
                endif
            menuconfig BSP_USING_I2C3
                bool "Enable I2C3 BUS (software simulation)"
                default n
                if BSP_USING_I2C3
                    comment "Notice: PH12 --> 124; PH11 --> 123"
                    config BSP_I2C3_SCL_PIN
                        int "i2c3 scl pin number"
                        range 0 175
                        default 123
                    config BSP_I2C3_SDA_PIN
                        int "I2C3 sda pin number"
                        range 0 175
                        default 124
                endif
        endif

        if BSP_HARDWARE_I2C
            menuconfig BSP_USING_HARD_I2C1
                bool "Enable I2C1 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C1
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C1_TX_USING_POLL
                        config BSP_I2C1_TX_USING_POLL
                            bool "BSP_I2C1_TX_USING_POLL"
                        config BSP_I2C1_TX_USING_INT
                            bool "BSP_I2C1_TX_USING_INT"
                        config BSP_I2C1_TX_USING_DMA
                            bool "BSP_I2C1_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C1_RX_USING_POLL
                        config BSP_I2C1_RX_USING_POLL
                            bool "BSP_I2C1_RX_USING_POLL"
                        config BSP_I2C1_RX_USING_INT
                            bool "BSP_I2C1_RX_USING_INT"
                        config BSP_I2C1_RX_USING_DMA
                            bool "BSP_I2C1_RX_USING_DMA"
                    endchoice
                endif

            menuconfig BSP_USING_HARD_I2C2
                bool "Enable I2C2 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C2
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C2_TX_USING_POLL
                        config BSP_I2C2_TX_USING_POLL
                            bool "BSP_I2C2_TX_USING_POLL"
                        config BSP_I2C2_TX_USING_INT
                            bool "BSP_I2C2_TX_USING_INT"
                        config BSP_I2C2_TX_USING_DMA
                            bool "BSP_I2C2_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C2_RX_USING_POLL
                        config BSP_I2C2_RX_USING_POLL
                            bool "BSP_I2C2_RX_USING_POLL"
                        config BSP_I2C2_RX_USING_INT
                            bool "BSP_I2C2_RX_USING_INT"
                        config BSP_I2C2_RX_USING_DMA
                            bool "BSP_I2C2_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C3
                bool "Enable I2C3 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C3
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C3_TX_USING_POLL
                            bool "BSP_I2C3_TX_USING_POLL"
                        config BSP_I2C3_TX_USING_INT
                            bool "BSP_I2C3_TX_USING_INT"
                        config BSP_I2C3_TX_USING_DMA
                            bool "BSP_I2C3_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C3_RX_USING_POLL
                        config BSP_I2C3_RX_USING_POLL
                            bool "BSP_I2C3_RX_USING_POLL"
                        config BSP_I2C3_RX_USING_INT
                            bool "BSP_I2C3_RX_USING_INT"
                        config BSP_I2C3_RX_USING_DMA
                            bool "BSP_I2C3_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C4
                bool "Enable I2C4 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C4
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C4_TX_USING_POLL
                            bool "BSP_I2C4_TX_USING_POLL"
                        config BSP_I2C4_TX_USING_INT
                            bool "BSP_I2C4_TX_USING_INT"
                        config BSP_I2C4_TX_USING_DMA
                            bool "BSP_I2C4_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C4_RX_USING_POLL
                        config BSP_I2C4_RX_USING_POLL
                            bool "BSP_I2C4_RX_USING_POLL"
                        config BSP_I2C4_RX_USING_INT
                            bool "BSP_I2C4_RX_USING_INT"
                        config BSP_I2C4_RX_USING_DMA
                            bool "BSP_I2C4_RX_USING_DMA"
                    endchoice
                endif
        endif
    endif

太复杂了

@wdfk-prog
Copy link
Contributor Author

已经有: RT_DEVICE_FLAG_DMA_RX RT_DEVICE_FLAG_DMA_TX RT_DEVICE_FLAG_INT_TX RT_DEVICE_FLAG_INT_RX 实现区分POLL,INT,DMA方式了,为什么还要加: RT_I2C_USING_POLL RT_I2C_USING_INT RT_I2C_USING_DMA 这三个?而且还是多选一的,如果我有两个 I2C,一个要用 DMA 方式,另一个要用 INT 方式,怎么办? 如果是想自由精简代码,也不应该用单选,可以改为多选方式。

  • 有道理,偷懒了.
  • 现在已修改为STM32内部自己实现POLL,INT,DMA方式;允许组合,并且可以根据配置精简代码与编译
  • 相关配置编写如下
menuconfig BSP_USING_I2C
    bool "Enable I2C"
    default n
    select RT_USING_I2C
    if BSP_USING_I2C
        choice
            prompt "Choice I2C mode"
            default BSP_SOFTWARE_I2C
            config BSP_SOFTWARE_I2C
                bool "Enable I2C BUS (software simulation)"
                select RT_USING_I2C_BITOPS
                select RT_USING_PIN
                default n
            config BSP_HARDWARE_I2C
                bool "Enable I2C BUS (hardware)"
        endchoice
        if BSP_SOFTWARE_I2C
            menuconfig BSP_USING_I2C1
                bool "Enable I2C1 BUS (software simulation)"
                default n
                if BSP_USING_I2C1
                    comment "Notice: PB6 --> 22; PB7 --> 23" 
                    config BSP_I2C1_SCL_PIN
                        int "I2C1 scl pin number"
                        range 0 175
                        default 22
                    config BSP_I2C1_SDA_PIN
                        int "I2C1 sda pin number"
                        range 0 175
                        default 23
                endif
            menuconfig BSP_USING_I2C2
                bool "Enable I2C2 BUS (software simulation)"
                default n
                if BSP_USING_I2C2
                    comment "Notice: PH13 --> 125; PH15 --> 127"
                    config BSP_I2C2_SCL_PIN
                        int "i2c2 scl pin number"
                        range 1 176
                        default 127
                    config BSP_I2C2_SDA_PIN
                        int "I2C2 sda pin number"
                        range 0 175
                        default 125
                endif
            menuconfig BSP_USING_I2C3
                bool "Enable I2C3 BUS (software simulation)"
                default n
                if BSP_USING_I2C3
                    comment "Notice: PH12 --> 124; PH11 --> 123"
                    config BSP_I2C3_SCL_PIN
                        int "i2c3 scl pin number"
                        range 0 175
                        default 123
                    config BSP_I2C3_SDA_PIN
                        int "I2C3 sda pin number"
                        range 0 175
                        default 124
                endif
        endif

        if BSP_HARDWARE_I2C
            menuconfig BSP_USING_HARD_I2C1
                bool "Enable I2C1 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C1
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C1_TX_USING_POLL
                        config BSP_I2C1_TX_USING_POLL
                            bool "BSP_I2C1_TX_USING_POLL"
                        config BSP_I2C1_TX_USING_INT
                            bool "BSP_I2C1_TX_USING_INT"
                        config BSP_I2C1_TX_USING_DMA
                            bool "BSP_I2C1_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C1_RX_USING_POLL
                        config BSP_I2C1_RX_USING_POLL
                            bool "BSP_I2C1_RX_USING_POLL"
                        config BSP_I2C1_RX_USING_INT
                            bool "BSP_I2C1_RX_USING_INT"
                        config BSP_I2C1_RX_USING_DMA
                            bool "BSP_I2C1_RX_USING_DMA"
                    endchoice
                endif

            menuconfig BSP_USING_HARD_I2C2
                bool "Enable I2C2 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C2
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C2_TX_USING_POLL
                        config BSP_I2C2_TX_USING_POLL
                            bool "BSP_I2C2_TX_USING_POLL"
                        config BSP_I2C2_TX_USING_INT
                            bool "BSP_I2C2_TX_USING_INT"
                        config BSP_I2C2_TX_USING_DMA
                            bool "BSP_I2C2_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C2_RX_USING_POLL
                        config BSP_I2C2_RX_USING_POLL
                            bool "BSP_I2C2_RX_USING_POLL"
                        config BSP_I2C2_RX_USING_INT
                            bool "BSP_I2C2_RX_USING_INT"
                        config BSP_I2C2_RX_USING_DMA
                            bool "BSP_I2C2_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C3
                bool "Enable I2C3 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C3
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C3_TX_USING_POLL
                            bool "BSP_I2C3_TX_USING_POLL"
                        config BSP_I2C3_TX_USING_INT
                            bool "BSP_I2C3_TX_USING_INT"
                        config BSP_I2C3_TX_USING_DMA
                            bool "BSP_I2C3_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C3_RX_USING_POLL
                        config BSP_I2C3_RX_USING_POLL
                            bool "BSP_I2C3_RX_USING_POLL"
                        config BSP_I2C3_RX_USING_INT
                            bool "BSP_I2C3_RX_USING_INT"
                        config BSP_I2C3_RX_USING_DMA
                            bool "BSP_I2C3_RX_USING_DMA"
                    endchoice
                endif
            menuconfig BSP_USING_HARD_I2C4
                bool "Enable I2C4 BUS (hardware)"
                default n
                if BSP_USING_HARD_I2C4
                    choice
                        prompt "Choice I2C TX mode"
                        default BSP_I2C3_TX_USING_POLL
                        config BSP_I2C4_TX_USING_POLL
                            bool "BSP_I2C4_TX_USING_POLL"
                        config BSP_I2C4_TX_USING_INT
                            bool "BSP_I2C4_TX_USING_INT"
                        config BSP_I2C4_TX_USING_DMA
                            bool "BSP_I2C4_TX_USING_DMA"
                    endchoice
                    choice
                        prompt "Choice I2C RX mode"
                        default BSP_I2C4_RX_USING_POLL
                        config BSP_I2C4_RX_USING_POLL
                            bool "BSP_I2C4_RX_USING_POLL"
                        config BSP_I2C4_RX_USING_INT
                            bool "BSP_I2C4_RX_USING_INT"
                        config BSP_I2C4_RX_USING_DMA
                            bool "BSP_I2C4_RX_USING_DMA"
                    endchoice
                endif
        endif
    endif

太复杂了

(⊙o⊙)…,那你有什么建议嘛?
I2C驱动框架的操作函数没有configuration,添加的话,改动太大了;
只改动stm32_i2c的话,我看着还行吧;没想到更合适的方式

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants