RA-Eco-RA4M2开发板上有个I2C接口,直接拿来用。
接口为P408/P409,是从SCI3设置过来的,瑞萨的SCI挺有意思,英文名叫Serial Communications Interface。
把UART、SPI、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测试下温湿度传感器。
NICE!
更多回帖