1094|1

48

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【雅特力AT32F435-V1.0 开发板评测】I2C测试-温湿度传感器HS300X [复制链接]

 

【雅特力AT32F435-V1.0 开发板评测】I2C测试-温湿度传感器HS300X

 

  • 测试项目

雅特力AT32F435 V1.0 IIC接口

  • 测试环境

开发板:雅特力AT32F435 V1.0

开发环境:RT-Thread studio V2.2.6

RT-Thread版本:5.0.0

I2C1外设资源:PB8—SCL PB9—SDA

温湿度传感器:HS300X

  • 雅特力AT32F435 IIC简介

雅特力AT32F435ZMT7基于ARM® 32位的Cortex® -M4微控制器+FPU,带256 K字节至4032 K字节内部闪存、sLib、双QSPI、SDRAM、双OTGFS、以太网、摄像头、18个定时器、3个ADC、23个通信接口, 3个I2C接口,支持SMBus/PMBus, 能够工作于多主模式或从模式。它们支持标准模式(standard mode,最高100 kHz)、快速模式(fast mode,最高400 kHz)、和增强快速模式(fast mode plus,最高1MHz),部分GPIO支持超高电流吸入能力20mA。I2C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。内置了硬件CRC发生器/校验器。它们可以使用DMA操作并支持SMBus总线2.0版/PMBus总线。4个SPI接口(36 M位/秒),4个均可用为I2S接口,其中I2S2/I2S3支持全双工。既可做主设备也可做从设备。

  • 测试软件环境搭建
  1. 新建工程

见文章雅特力AT-START-F435开发板试用】1-构建RTT-Stdio开发环境 - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)

  1. 配置IIC及HS300X软件包

在左侧项目资源管理器中打开新建的项目,按图1双击RT-Tread Setting设置项,按图2、3、4完成相关项设置。

图1 打开RT-Thread Settings

图2 驱动设置

图3 添加温湿度传感器HS300X软件包

图4设置IIC1配置项

注意:

   雅特力的GPIO引脚编号在官方使用说明书是通过GPIO_PORT、GPIO_PIN给出,与RT-Thread Studio的pin编号不一致,我们可以通过修改rtconfig.h文件来实现,修改如下:

打开rtconfig.h文件,找到On-chip Peripheral Drivers段,将

#define BSP_I2C1_SCL_PIN 139

#define BSP_I2C1_SDA_PIN 140

修改为:

#define BSP_I2C1_SCL_PIN GET_PIN(B,6)

#define BSP_I2C1_SDA_PIN GET_PIN(B,7)

本文I2C1_SCL引脚为PB6, I2C1_SDA引脚为PB7。

  1. 添加头文件

因使用IIC驱动,打开main.c文件,需添加以下三个头文件:

#include <i2c.h>

#include <drv_i2c.h>

#include "sensor_renesas_hs300x.h"

  1. 添加路径

图5 设置新增头文件路径

按照图5步骤分别添加i2c.h、drv_i2c.h、sensor_renesas_hs300x.h所在目录路径:

“..\AT32F435\rt-thread\components\drivers\include\drivers"”

“..\AT32F435\rt-thread\components\drivers\i2c”

“..\AT32F435\packages\hs300x-latest”

  1. 修改程序

打开sensor_renesas_hs300x.c在程序开头增加

#define HS300X_I2C_ADDR 0x44

#define HS300X_I2C_BUS  "i2c1"

在最后添加如下程序段,实现自动加载运行:

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);

至此修改工作全部结束,编译下载运行。

  • 运行及结果

系统接线图:

图6 传感器接线图

图7 系统运行界面

我们可以看到i2c1和HS300X成功挂载。

使用传感器命令运行,分别输入sensor_polling tm-hs300x和 sensor_polling hm-hs300x

图9 温度测量值

图9 湿度测量值

  • 总结

由以上例子我们可以看出,在雅特力科技的《雅特力AT32F435-STB 开发板》上利用Rt-thread进行传感器二次开发,可以做到低代码编写,用户上手较容易,开发效率高。

最新回复

是用的几点零的内核版本呀,我用5.0的版本,会提示sensor.h找不到的提示。  详情 回复 发表于 2023-7-11 18:19
点赞 关注
 
 

回复
举报

6980

帖子

11

TA的资源

版主

沙发
 
是用的几点零的内核版本呀,我用5.0的版本,会提示sensor.h找不到的提示。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表