在MicroPython的NUCLEO_F411RE版本中,I2C默认的引脚使用了PB6/PB7,和Arduino上使用的不一致,这样使用起来不是太方便。
怎样将MicroPython的I2C改为和标准的Arduino方式呢?
首先用文本编辑器打开stmhal/board/NUCLEO_F411RE文件夹下的mpconfigboard.h文件,找到I2C相关的定义:
- // I2C busses
- #define MICROPY_HW_I2C1_SCL (pin_B6) // Arduino D10, pin 17 on CN10
- #define MICROPY_HW_I2C1_SDA (pin_B7) // pin 21 on CN7
- #define MICROPY_HW_I2C2_SCL (pin_B10) // Arduino D6, pin 25 on CN10
- #define MICROPY_HW_I2C2_SDA (pin_B3) // Arduino D3, pin 31 on CN10
- #define MICROPY_HW_I2C3_SCL (pin_A8) // Arduino D7, pin 23 on CN10
- #define MICROPY_HW_I2C3_SDA (pin_C9) // pin 1 on CN10
复制代码
然后将I2C1相关的定义进行修改
- #define MICROPY_HW_I2C1_SCL (pin_B8) // Arduino D15
- #define MICROPY_HW_I2C1_SDA (pin_B9) // D14
复制代码
然后重新编译源码,下载后,在连接一个I2C模块(我使用了DS3231模块)就可以发现,I2C1的确已经改为了B8/B9上了。
知道有些网友怕麻烦,所以编译后的HEX也就直接提供了。
firmware.zip
(285.26 KB, 下载次数: 0, 售价: 5 分芯积分)