友情提示:兄弟们觉得有用就点赞收藏啊,不然的话CSDN的浏览记录不全,会找不到的。
老规矩先参考这篇官方文章
注意新版studio的这个2.2部分直接就有的,不必再去手动添加
2.3这一部分文章有误需要按照我的添加
托马斯的韦德的------2.3注册 I2C 设备
软件 I2C 添加到工程中之后就可以调用软件 I2C 注册函数 rt_hw_i2c_init 来注册软件 I2C 设备了,该函数的原型如下:
int rt_hw_i2c_init(char *name, rt_uint8_t scl, rt_uint8_t sda)
1
name:设备名称
scl:软件模拟I2C的SCL引脚
sda:软件模拟I2C的SDA引脚
在stm32F103RCT6开发板上,温湿度传感器SHT30连接在PB6(SCL)和PB7(SDA) ,所以在main.c文件中先添加头文件和这一段代码
#include <drv_soft_i2c.h>
int register_i2c(void)
{
rt_hw_i2c_init();
return RT_EOK;
}
//注册到系统中,自动初始化设备
INIT_BOARD_EXPORT(register_i2c);
然后在drivers文件夹下找到board.h,需要手动添加95这一行才能开启I2C1,后边用oled需要送后动添加102这一行才能开启I2C2
添加完成之后点击编译,下载到开发板中运行,即可在串口终端中看到日志信息(绿色),提示I2C总线设备已注册成功:
然后我的I2C1挂载的是sht30这个包所以我的SCL--PB10,SDA--PB11也是在board.h里更改引脚