瑞萨单片机论坛
直播中

大菠萝Alpha

3年用户 692经验值
擅长:嵌入式技术
私信 关注
[经验]

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

一、基础准备

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

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

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

二、I2C配置

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

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

然后生成源码。

三、外设配置

这个主要在RT-Thread的scons工具上进行,先打开SCI配置好SCI3为I2C模式。
545.png
再将sensor驱动框架加进来。
700.png
最后把温湿度传感器的组件包选上。
924.png

四、驱动

有了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打印。
802.png

看看设备,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测试下温湿度传感器。
002.png

NICE!

更多回帖

发帖
×
20
完善资料,
赚取积分