基本数据:

供电范围:2.4V~5.5V,湿度误差±1.5,温度误差±0.2。

设备地址选择脚,ADDR(PIN2)接GND,设备写地址为0x88(0x44<<1),读地址为0x89(0x45<<1)。

读取的信息顺序是:温度数据(16位)+校验和(8位)+适度数据(16位)+校验和(8位)。

湿度:RH=100*(1.0*SRH / 65535),摄氏温度:T=-45+175*(1.0*ST / 65535);

单次数据采集模式:

可设置重复性和时钟延展。数据采集频率和重复性影响传感器测量时间和功耗。

例如:指令0x2c06,启用高重复性测量和时钟延展。

单次模式读取数据:注意单次下传感器测量时间间隙,

例如:发送0x2c06指令后,传感器工作(大概10ms)→发送“读报头”→传感器响应→SDA被拉低(大概2ms)→读出数据。

备注:时钟延展只适用于单次采集模式。

周期数据采集模式:

采用固定周期测量数据,有0.5mps,1mps,2mps,4mps,10mps。1mps采样频率,即1s采集一次。

循环模式读取数据:读取数据前要开启循环采集(指令0x2130,1mps,高重复性),

再重新发送指令0xE000,每次读完传感器数据寄存器都会清除。

如果传感器处于此模式,且正在采集数据,发送中断指令(0x3903),传感器将完成此次测量,进入单次采集模式。

下面是主要部分代码

#define SHT30_ADDR_WRITE 0x88
#define SHT30_ADDR_READ 0x89#define ONE_SHOT 0x2c06/*******************************************************/
#define PERIODIC_MODE_05S 0x2032// 0.5mps
#define PERIODIC_MODE_1S  0x2130// 1mps
#define PERIODIC_MODE_2S  0x2236// 2mps
#define PERIODIC_MODE_4S  0x2334// 4mps
#define PERIODIC_MODE_10S 0x2737// 10mps
#define FETCH_DATA 0xe000
/********************************************************/
void sht30_single_mode();
void sht30_periodic_readdata();
void sht30_periodic_init();
void sht30_readdata(uchar msb,uchar lsb);
uint sht30_data[4];
extern uchar flag_1s;//1s读取一次数据发送到串口
int main()
{usart_init();sda=1;scl=0;delayms(10);sht30_periodic_init();//sht30_single_mode();while(1){if(flag_1s==1){flag_1s=0;sht30_readdata(0xe0,0x00);}}
}void sht30_periodic_init()
{i2c_start();i2c_write_byte(SHT30_ADDR_WRITE);i2c_write_byte(0x21);i2c_write_byte(0x30);i2c_stop();
}void sht30_readdata(uchar msb,uchar lsb)
{float RH,T;i2c_start();i2c_write_byte(SHT30_ADDR_WRITE);i2c_write_byte(msb);i2c_write_byte(lsb);i2c_stop();i2c_start();i2c_write_byte(SHT30_ADDR_READ);sht30_data[0]=i2c_read_byte(1);sht30_data[0]<<=8;sht30_data[0]|=i2c_read_byte(1);sht30_data[1]=i2c_read_byte(1);sht30_data[2]=i2c_read_byte(1);sht30_data[2]<<=8;sht30_data[2]|=i2c_read_byte(1);sht30_data[3]=i2c_read_byte(0);i2c_stop();T=-45+175*(1.0*sht30_data[0] / 65535);RH=100*(1.0*sht30_data[2] / 65535);ES=0;TI=1;printf("温度:%2.2f ℃,湿度:%2.2f %%RH\n",T,RH);while(!TI);TI=0;ES=1;
}

SHT30学习记录(51单片机代码)相关推荐

  1. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  2. C51汇编语言寻址方式,单片机学习:51单片机寻址方式详解

    原标题:单片机学习:51单片机寻址方式详解 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8 ...

  3. 51单片机c语言学习感想,51单片机实训心得体会

    [www.hywsbj.com--心得体会] 单片机实训有哪些心得体会呢?下面是小编为大家收集的资料,欢迎阅读哦. 51单片机实训心得体会 通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥 ...

  4. 从零学习入门51单片机和STM32单片机

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...

  5. 单片机学习笔记————51单片机实现带数码管显示的加法简易计算器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  6. 单片机学习笔记————51单片机实现在数码管中实现iphone4S开机密码锁的程序

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

  7. 单片机学习笔记————51单片机实现主机的串口收发

    proteus虚拟串口的实现:https://mp.csdn.net/console/editor/html/107251649 一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 / ...

  8. [学习笔记]51单片机

    关于51单片机入门,前提是先学一下电路,不然有的的地方不太容易理解 之前在知乎上看见一位dalao总结的单片机学习分四个层次: 第一个层次:完成单片机开发板的学习,理解单片机的工作,能够看懂单片机的程 ...

  9. 单片机学习笔记————51单片机实现带数码管显示的象棋比赛专用计时器

    一.使用proteus绘制简单的电路图,用于后续仿真 二.编写程序 /***************************************************************** ...

最新文章

  1. 【php增删改查实例】第十七节 - 用户登录(1)
  2. [Linux Mysql] Linux下Mysql的基本操作
  3. SEAM学习(一)-----安装运行example
  4. sqoop 增量导入mysql_sqoop增量导入数据库
  5. Linux 引入自动化测试平台 KernelC
  6. Docker 基础介绍及配置安装 [一]
  7. Ajax提交数据判断员工编号是否存在,及自动填充与员工编号所对应的员工姓名。...
  8. 带修改离线主席树 + 树状数组 ZOJ - 2112【Dynamic Rankings】
  9. linux信任公钥的配置
  10. 四、全卷积网络FCN详细讲解(超级详细哦)
  11. 个人网页制作 大学生个人网页设计 个人网站模板 简单静态HTML个人网页作品 HTML+CSS+JavaScript
  12. Flask打包服务器部署全攻略
  13. 【基础】制作word模板
  14. java crm 进销存 websocket即时聊天发图片文字 好友群组 SSM源码
  15. 视频中的音频提取如何操作?一分钟教会你
  16. 外行人都能看懂的SpringCloud,错过了血亏! 1
  17. i3 10110u和i5 10210u哪个好
  18. Linux服务器离线安装transformers
  19. VS2017链接报错:fatal error LNK1318: 非意外的 PDB 错误
  20. 伦艺计算机科学与技术,伦敦艺术大学专业设置汇总!

热门文章

  1. kvm切换器是什么?
  2. 【转】地理信息系统中常用的空间数据模型有哪些?
  3. 关闭WINDOWS服务
  4. c语言读取字母个数柱状图,C语言实现绘制柱状图
  5. Node.js性能优化
  6. 元气骑士多终端跨网远程联机解决方案
  7. netty 序列化工具类 protostuff
  8. 平板做电脑拓展屏(ios,安卓,mac,Windows都兼容)
  9. 哀悼日一位老师在教室里的讲话
  10. 什么是物联网?从大数据谈起