2025 / 07 / 07
【RA-Eco-RA4M2开发板评测】RT-Thread上驱动I2C温湿度传感器

作者:大菠萝Alpha


一、基础准备

RA-Eco-RA4M2开发板上有个I2C接口,直接拿来用。


接口为P408/P409,是从SCI3设置过来的,瑞萨的SCI挺有意思,英文名叫Serial Communications Interface。


把UART、SPI、I2C等通过引脚复用在一起。


二、I2C配置

瑞萨强大的配置工具FSP smart configurator真是个好东西,用的很顺手,需要在上配置好SCI3。


再在stack中新增一个i2c的实例,并配置好。


然后生成源码。


三、外设配置

这个主要在RT-Thread的scons工具上进行,先打开SCI配置好SCI3为I2C模式。


再将sensor驱动框架加进来。


最后把温湿度传感器的组件包选上。


四、驱动

有了RT-Thread的sensor驱动框架和hs300x驱动组件包,对温湿度传感器基本上不需要做太多编码,稍微加个温湿度传感器初始化逻辑即可。

#define HS300X_I2C_BUS  "sci3i"

int rt_hw_hs300x_port(void)
{
    struct rt_sensor_config cfg;

    cfg.intf.dev_name  = HS300X_I2C_BUS;
    cfg.intf.user_data = (void *)HS300X_I2C_ADDR;
    
    rt_hw_hs300x_init("hs300x", &cfg);

    return RT_EOK;
}
INIT_ENV_EXPORT(rt_hw_hs300x_port);


其中HS300X_I2C_BUS 为上面配置好的SCI3,HS300X_I2C_ADDR为HS3003的0x44地址,当然可以再RASC中的slave中配置好。

最后编译好并下载到RA-Eco-RA4M2开发板上。

linking...
Program Size: Code=58890 RO-data=11514 RW-data=660 ZI-data=5556  
FromELF: creating hex file...
".\Objects\rtthread.axf" - 0 Error(s), 7 Warning(s).
Build Time Elapsed:  00:00:43


五、运行

Reset开发板后,熟悉的RT-Thread打印。


看看设备,I2C已经OK。

msh />list device
device           type         ref count
-------- -------------------- ----------
humi_hs3 Sensor Device        0
temp_hs3 Sensor Device        0
sci3i    I2C Bus              0
uart9    Character Device     2
pin      Pin Device           0
msh />


最后用RT-Thread sensor框架自带的测试cmd测试下温湿度传感器。

隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信