使用RT-Thread Studio DIY 迷你桌面时钟二---获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)--基于stm32f103rct6

友情提示:兄弟们觉得有用就点赞收藏啊,不然的话CSDN的浏览记录不全,会找不到的。
老规矩先参考这篇官方文章
使用RT-Thread Studio DIY 迷你桌面时钟(二)| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)_Mculover666的博客-CSDN博客1. 项目进度桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:在上一篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟。使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建工程接下里我们开始添加I2C设备,添加S...https://blog.csdn.net/Mculover666/article/details/104153715使用RT-Thread Studio DIY 迷你桌面时钟二---获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)--基于stm32f103rct6
文章图片


注意新版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 int register_i2c(void) { rt_hw_i2c_init(); return RT_EOK; } //注册到系统中,自动初始化设备 INIT_BOARD_EXPORT(register_i2c);

然后在drivers文件夹下找到board.h,需要手动添加95这一行才能开启I2C1,后边用oled需要送后动添加102这一行才能开启I2C2
使用RT-Thread Studio DIY 迷你桌面时钟二---获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)--基于stm32f103rct6
文章图片


添加完成之后点击编译,下载到开发板中运行,即可在串口终端中看到日志信息(绿色),提示I2C总线设备已注册成功:
使用RT-Thread Studio DIY 迷你桌面时钟二---获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)--基于stm32f103rct6
文章图片

然后我的I2C1挂载的是sht30这个包所以我的SCL--PB10,SDA--PB11也是在board.h里更改引脚


【使用RT-Thread Studio DIY 迷你桌面时钟二---获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)--基于stm32f103rct6】

    推荐阅读