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

cathy的头像
cathy 发布于:周一, 03/07/2022 - 09:49 ,关键词:

简介

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

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

主要内容

“瑞萨RA6M3

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

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

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

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

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

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

“瑞萨RA6M3
  • 效果如下图,“属性”窗口配置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”

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

“瑞萨RA6M3
  • 文件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会处于睡眠状态,读出的数据不变化。

“瑞萨RA6M3
  • 将Sensor板与开发板的P1接口连接。

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

“瑞萨RA6M3

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

“瑞萨RA6M3

总结:

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

来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 206