瑞萨RA6M3 MCU通过I2C读取HS3001温湿度传感器

电子说

1.2w人已加入

描述

简介

使用瑞萨RA MCU的灵活软件包(Flexible Software Package–FSP),配合e2 studio集成开发环境,或者使用第三方IDE和支持该IDE的RA智能配置器(RA Smart Configurator–RASC),可以简单方便的对外围器件添加驱动代码。

本教程以RA6M3 MCU通过I2C接口控制HS3001温湿度传感器为例,展示如何一步一步的使用FSP添加外围器件驱动。

主要内容

传感器

本程序基于新晔电子RA6M3开发板及Sensor板(包含HS3001、ISL29033及ZMOD4410),由于ISL29033和HS3001的i2c地址都为0x44,所以将HS3001地址改为了0x31。

使用e2 studio新建一个RA6M3的工程

工程目录中双击configuration.xml文件,可以打开软件自带的配置界面

配置界面中点击“Clocks”,进入配置时钟界面。根据自己的需求,配置好时钟

点击“Pins”,可以配置IO口功能。选择要使用的IIC,并且使能

传感器

点击“Stacks”,然后点击“New Stack”→ “Driver”→“Connectivity”→“I2C Master Driver on r_iic_master”,增加iic驱动配置。

传感器

效果如下图,“属性”窗口配置i2c:

1、Name为配置i2c的结构体名称

2、Channel配置要使用的i2c通道,配置好后,Pins中会显示使用的IO口

3、Rate配置i2c速率

4、Slave Address配置从机地址,可在程序中修改

5、Address Mode配置从机地址模式,多数为7-Bit模式

6、Callback配置i2c的中断函数(必须配置)

7、Interrupt Priority Level配置中断优先级

此例中,使用i2c通道2,端口为P511和P512,并配置好中断函数名

配置好后,点击“Generate Project Content”

传感器

中断函数在hal_data.h中声明,需要使用者去完成此函数。此函数中可以读取中断事件,作者直接使用长延时等待i2c通信完成,所以此函数为空。

传感器

文件ra_gen/hal_data.c中初始化了g_i2c_master0的结构体,此结构体中包含可调用的函数结构体和配置参数结构体。

修改hal_entry.c文件中的hal_entry函数,顺序完成以下代码:

1、初始化i2c

2、设置i2c从机地址(HS3001从机地址为0x31)

3、向HS3001发送请求测量命令,然后加入等待延时

4、读取HS3001温度数据和湿度数据,并等待通信完成

5、通过计算得到温湿度数值

注意:每次读取数据前要发送请求测量命令,否则HS3001会处于睡眠状态,读出的数据不变化。

传感器

将Sensor板与开发板的P1接口连接。

编译程序并仿真,将RH和TEMP变量添加到Watch Expressions窗,使能实时刷新(Expressions中选中变量,单击右键)。

传感器

在Expressions中可以看到数据变化。

传感器

总结:

从以上例子大家可以看到,使用瑞萨RA MCU的灵活软件包添加一个I2C外置的驱动,只需要在FSP的图形介面上对硬件和软件做好配置即可自动生成所需的驱动和初始化代码,整个应用就只需要10行的代码。硬件和驱动上的配置在介面上也是一目了然,无需工程师去查文档、看手册,非常方便。

来源:瑞萨MCU小百科

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分