用C/C++修改树莓派Pico的I2C默认SDA和SCL针脚

首先要说明一点:Pico 有两个 I2C,也就是两套 SDA 和 SCL。这点你可以在针脚图中名字看出,比如下图的 Pin 4 和 Pin 5是 I2C1 的,而默认的 Pin 6 和 Pin 7 是 I2C0 的。

请添加图片描述

默认情况下是只开启了第一个 I2C,也就是只有 I2C0 的针脚是可以使用的。如果这种情况下,你哪怕修改了针脚,但不是 I2C0 的,也是不会正常运行的。

正确修改 I2C 的 SDA 和 SCL 默认针脚的方法有两种,还有一种不推荐的方法(但也是方法)。

最推荐的是在CMakeLists.txt中设置,因为这部分是控制所有代码的,这样可以避免被 SDK 中的一些库的设置替换掉:

set(PICO_DEFAULT_I2C 1)
set(PICO_DEFAULT_I2C_SDA_PIN 18)
set(PICO_DEFAULT_I2C_SCL_PIN 19)

还有一种是在源代码中,不推荐这种是因为可能会被替换掉。将下面的代码放到导入库部分的后面,这样被替换之后可能会再次替换回来:

#define PICO_DEFAULT_I2C 1
#define PICO_DEFAULT_I2C_SDA_PIN 18
#define PICO_DEFAULT_I2C_SCL_PIN 19

这样后面的代码就会使用这个值,而不是默认的45

默认值是在头文件pico-sdk/blob/master/src/boards/include/boards/pico.h中进行设置的,设置默认值的代码部分如下:

#ifndef PICO_DEFAULT_I2C_SDA_PIN
#define PICO_DEFAULT_I2C_SDA_PIN 4
#endif
#ifndef PICO_DEFAULT_I2C_SCL_PIN
#define PICO_DEFAULT_I2C_SCL_PIN 5
#endif

当然你可以直接来修改pico-sdk中的默认值,但是不推荐,这样会搞乱的。

希望能帮到有需要的人~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值