加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于LPC55S69驱动SHT30采集温湿度-I2C通信串口打印

05/18 17:20
2694
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
电路板图
相关方案
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

本文是基于LPC55S69的官方开发板去驱动SHT30采集温湿度,通过串口打印输出。

使用了FLEXCOMM7作为I2C接口,FLEXCOMM0作为Uart接口,通过MCUXpresso配置。

SHT最核心的一个命令就是数值查询。指令与时序如下图:

返回的数值是6个字节的数组

1.[温度高八位]

2.[温度第八位]

3.[温度crc校验]

4.[湿度高八位]

5.[湿度第八位]

6.[湿度crc校验]

温湿度转换,手册也给出了很详细的说明

I2C通信部分

I2C_MasterStart(FLEXCOMM7_PERIPHERAL, 0x44, kI2C_Write);
I2C_MasterWriteBlocking(FLEXCOMM7_PERIPHERAL, sht30_rxcmd, 2, kI2C_TransferNoStopFlag);
I2C_MasterRepeatedStart(FLEXCOMM7_PERIPHERAL, 0x44, kI2C_Read);
I2C_MasterReadBlocking(FLEXCOMM7_PERIPHERAL, sht30_buff, 6, kI2C_TransferDefaultFlag);
I2C_MasterStop(FLEXCOMM7_PERIPHERAL);

可以看到LPC55S69的I2C库封装比较简单,需要用户手动产生开始信号,停止信号,这里就仿着SHT30手册写。

温度湿度转换部分

uint16_t tem = ((sht30_buff[0]<<8) | sht30_buff[1]);//温度拼接
float Temperature= (175.0*(float)tem/65535.0-45.0) ;// T = -45 + 175 * tem / (2^16-1)/*转换实际温度*/

uint16_t hum = ((sht30_buff[3]<<8) | sht30_buff[4]);//湿度拼接
float Humidity= (100.0*(float)hum/65535.0);

连线

运行效果:

最后附上源代码工程文档。

  • template.zip
    描述:源代码工程文件

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
MC74HC595ADTG 1 Rochester Electronics LLC HC/UH SERIES, 8-BIT RIGHT SERIAL IN PARALLEL OUT SHIFT REGISTER, TRUE OUTPUT, PDSO16, HALOGEN FREE AND ROHS COMPLIANT, TSSOP-16
$0.62 查看
24LC16BT-I/SN 1 Microchip Technology Inc 2K X 8 I2C/2-WIRE SERIAL EEPROM, PDSO8, 0.150 INCH, ROHS COMPLIANT, PLASTIC, MS-012, SOIC-8

ECAD模型

下载ECAD模型
$0.35 查看
SN74AHC1G14DCKR 1 Texas Instruments Single 2-V to 5.5-V inverter with Schmitt-Trigger inputs 5-SC70 -40 to 125

ECAD模型

下载ECAD模型
$0.28 查看

相关推荐

电子产业图谱