SHT10空气温湿度MODbus协议(单指令)
SHT10_SHT11数字温湿度传感器-中文资料

40—100
100—200
每月消费金额
200以上
人数 人数
学生饮食上注重的方面表:
70 60 50 40 30 20 10 0
营养均衡
价格合适
选择饮食最为合 理的荤素均匀的学生 所在的比例是23%, 多数的同学不是荤少 素多就是荤多素少。 食物搭配不合理。
大学生饮食荤素 搭配情况表:
方便快捷
35
30
<三>采用的促销方法 1.宣传: 因为目标市场的流动性,决议店面3-4年内全部翻新,由于随时都会有老顾客散
失,新顾客光顾的市场更替,所以宣传和营销必需坚持到永恒,综合考虑各方因素, 具体采以下多少种方式:
1)与各高校学生会组织和有社会影响及关系的联系,介入资助学校迎新晚会等类 似活动来做企业宣传。
市场细分
1)按经济起源分: ①无经济来源的学生(主导地位)。此消费群体对餐饮高贵、舒服方面要有不和
有收入来源的群体一样有较高的请求,较合适个别的消费标准,在制定价格的同时需 恰当调低价格。
②有经济来源的教职工、店面员工等。根据这种消费市场可以依照社会上的价格 消费水平,制订绝对来说较多层次、多种类的标准来制作各种标准餐。 2)按性别分:
风险以及应答措施
<一>风险: 竞争对手多,竞争激烈;管理和经营缺乏实践,科学化、高技术含量的管理及运营运 用存在磨合风险;原料的安全卫生存在一定隐患;市场补缺者和市场追随者及市场模仿者 加入竞争增长了一定商场竞争力。 <二>办法 1.产品和服务保持特色,一直革故鼎新,加入新元素。 2.不断学习成功者的管理教训,完善自身管理。 3.认真建立与原料供应商的长期协作关系。 4.不断挖掘自身漏洞,发现新市场,坚持强度宣传,营造企业在顾客印象中的良好形 象和在消费者心中形成一定的亲和力,直至企业做大做强!
SHT10程序代码

/*************定义接口******************
P2.6------SCK (SHT10)
P2.7------DATA (SHT10)
*****************************************/ sbit SCK = P2^6; //定义通讯时钟端口
sbit DATA = P2^7; //定义通讯数据端口
;-------------------------------------*/
char s_write_byte(unsigned char value)
// writes a byte on the Sensibus and checks the acknowledge
{
unsigned char i,error=0;
// calculates dew point // input: humidity [%RH], temperature [℃]
// output: dew point [℃]
{ float logEx,dew_p3;7.5*t/(237.3+t)+(log10(h)-2);
typedef union { unsigned int i;
//定义了两个共用体
float f;
} value; enum {TEMP,HUMI};
//枚举测量温度或湿度
#define noACK 0
//用于判断是否结束通讯
#define ACK 1
//结束数据传输
//adr command r/w
float calc_dewpoint(float h,float t); //计算露点
//char s_softreset(void);
modbus协议详解

<转>经过整理的Modbus通讯协议详解 -摘自csdn2011-04-23 11:28Modbus通讯协议简介Modbus协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master 端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验, RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP 协议是一个面向连接的可靠协议。
另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。
因此,Modbus协议的可靠性较好。
基于MODBUS协议的温湿度检测模块设计_毕业设计

基于MODBUS协议的温湿度检测模块设计目录摘要 (1)关键词 (1)1 前言 (2)1.1 研究目的和意义 (2)1.2.1 国外研究现状 (2)1.2.2 国内研究现状 (3)1.3 主要研究内容 (4)2 Modbus协议介绍 (4)2.1 Modbus协议简介 (4)2.1.1 在Modbus网络上传输 (4)2.1.2 在其它类型网络上传输 (5)2.1.3 查询—回应周期 (5)2.2 Modbus两种传输方式 (5)2.3 Modbus信息帧 (6)2.4 Modbus错误检查方法 (6)2.5 Modbus协议指令 (7)3 RS485通讯介绍 (8)4 系统方案的设计 (8)5 系统模块的硬件设计 (9)5.1 模块的硬件的选择及电路设计 (9)5.1.1 单片机芯片的选择及电路设计 (9)5.1.2 温湿度采集芯片的选择及电路设计 (12)5.1.3 扩展内存RAM的选择及电路设计 (14)5.1.4 EEPROM存储器的选择及电路设计 (15)5.1.5 无线模块芯片的选择及电路设计 (17)5.1.6 显示器的选择及电路设计 (18)5.1.7 按键电路设计 (19)5.1.8 报警电路设计 (19)5.1.9 电源电路设计 (20)5.2 RS485接口的硬件设计 (20)5.2.1 RS485接口芯片的选择 (20)5.2.2 单片机侧RS485接口电路的设计 (21)6 测量模块的软件设计 (22)6.1 软件的总体设计 (22)6.2 初始化的流程图设计 (23)6.3 温湿度数据采集流程图 (23)6.4 modbus协议读保持寄存器的流程图 (24)6.5 报警流程图 (25)7 模块modbus通信实现的设计 (25)8 系统调试与运行 (27)8.1 调试过程 (27)8.2 运行结果 (29)9 结束语 (30)参考文献 (30)致谢 (31)附录 (31)基于MODBUS协议的温湿度检测模块设计摘要:我国自古以来就是农业大国,但现代设施农业生产起步较晚。
基于Modbus协议的温湿度传感器的设计

基于Modbus协议的温湿度传感器的设计【摘要】本文介绍了一种使用工业现场总线协议——Modbus协议进行数据传输的温湿度传感器节点。
主要是传感器节点的硬件电路的设计,包含数据采集和处理电路等;软件设计,包含温湿度数据的采集和Modbus通信协议。
最后对设计的传感器节点进行了射频性能和传感器精度的测试验证。
【关键词】Modbus协议;温湿度传感器;无线传感器0 引言无论是在工业现场还是日常生活中,我们都需要对环境的温湿度参数进行监测。
传感器节点作为温湿度监测的终端,直接接触被测环境,是整个监测系统的重要组成部分。
精度高、成本低、使用时限长、安装方便是我们在设计中需要考虑的因素[1]。
本文综合以上各个因素设计了一款使用Modbus通信协议和433MHz无线频段的无线温湿度传感器节点。
考虑到传感器节点成本和精度的因素,使用瑞士Sensirionn公司生产的SHT10传感器,它可以同时测量温度和湿度,且有较高的测量精度和简洁的外围电路。
为了便于安装,使用433MHz无线频段作为传感器节点的通信媒介,有较远的通信距离和穿墙能力,避免了有线通信电缆安装的不便。
1 总体结构温湿度传感器节点的总体结构如图1所示,主要包含传感器数据采集、电源供电、主控芯片数据处理、无线通信数据收发几个部分。
传感器数据采集负责采集环境温湿度的值,电源供电则是为传感器数据采集、主控和无线通信芯片提供3.3V电压电源,主控芯片主要是对采集到的数据进行数据分析和处理以得到实际的温度和湿度的值,无线通信部分实现的是433MHz的通信频段。
图1 温湿度传感器节点的总体结构2 硬件设计无线温湿度传感器节点的硬件设计包含电源供电,数据采集,数据处理,数据收发几个部分。
电源供电部分主要是把3.7V电池电压转换为3.3V,作为各个部分的供电电源,以及5V电源给电池充电两个部分,使用Maxim公司的MAX8881作为3.7V转3.3V的降压芯片,MAX1555作为5VDC电源给电池充电的芯片;数据采集主要是对环境温湿度参数的采集,使用Sensirionn公司生产的SHT10传感器;数据处理主要是对采集到的数据进行计算求值等,使用ST 公司的STM32F103芯片;无线数据通信则是为传感器节点提供一个数据通信的通道,使用TI公司的CC1101芯片。
sht10温湿度传感器说明.

Datasheet SHT1x (SHT10, SHT11, SHT15数字温湿度传感器• 完全标定• 数字信号输出• 低功耗• 卓越的长期稳定性• SMD 封装–适于回流焊接外形尺寸图 1 SHT1x 传感器尺寸(1mm=0.039inch,“ 11”表示该传感器型号为 SHT11。
外部接口:1:GND, 2: DATA, 3: SCK, 4: VDD传感器芯片此说明书适用于 SHT1x-V4。
SHT1x-V4 是第四代硅传感芯片,除了湿度、温度敏感元件以外,还包括一个放大器, A/D 转换器, OTP 内存和数字接口。
第四代传感器在其顶部印有产品批次号,以字母及数字表示,如“ A5Z ”,见图 1。
材质传感器的核心为 CMOS 芯片,外围材料顶层采用环氧 LCP ,底层为 FR4。
传感器符合 ROHS 和WEEE 标准,因此不含 Pb, Cd, Hg, Cr(6+, PBB, PBDE 。
实验包如要进行直接的传感器测量,传感器性能检验或者温湿度实验,客户可选用 EK-H2,其中包括传感器和与电脑配套的软、硬件。
如需进行更复杂的,要求更高的测量,可选用 EK-H3。
它可以同时进行 20个点的温湿度测量。
产品概述SHT1x (包括 SHT10, SHT11 和 SHT15 属于 Sensirion 温湿度传感器家族中的贴片封装系列。
传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。
传感器采用专利的 CMOSens® 技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与 14 位的 A/D 转换器以及串行接口电路实现无缝连接。
因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。
每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在 OTP 内存中,用于内部的信号校准。
sht10温湿度传感器说明

用于密封和粘合的材质(保守推荐):推荐使用充 满环氧树脂的方法进行电子元件的封装,或是硅树 脂。这些材料释放的气体也有可能污染SHT7x(见 1.3)。因此,应最后进行传感器的组装,并将其置 于通风良好处,或在50℃的环境中干燥24小时,以 使其在封装前将污染气体释放。
烘干:在100-105℃ 和< 5%RH 的湿度条件下保持 10小时; 重新水合:在20-30℃ 和>75%RH 的湿度条件下保 持12 小时9。
1.5 温度影响 气体的相对湿度,在很大程度上依赖于温度。因此 在测量湿度时,应尽可能保证所有测量同一湿度的 传感器在同一温度下工作。在做测试时,应保证被 测试的传感器和参考传感器在同样的温度下,然后 比较湿度的读数。
外形尺寸
0.95 ±0.1
7.47 ±0.05 4.2 ±0.1 1.27 ±0.05
1.5 ±0.2 2.0 ±0.1 1.5 ±0.1 sensor opening 2.5 ±0.1
0.6 ±0.1
NC
NC
1
NC
2
A5Z
NC
3
NC
11 4
NC
5.2 ±0.2
1.83 ±0.05
3.3 ±0.1 4.93 ±0.05
SHT1X 提供表贴LCC 封装,可以使用标准回流焊 接。同样性能的传感器还有插针型封装 (SHT7X )和柔性PCB封装(SHTA1)。
SHT-标准MODBUS协议-湿度

MODBUS RTU 通讯协议波特率9600 数据格式:8位校验位无停止位1位数据默认1位小数,例如10表示1.01.读测量值(温度、湿度、开关状态)命令:主机读数据格式:开始从机地址命令寄存器地址寄存器个数CRC校验>5ms延迟1字节0x03 高字节低字节0x00 22 高字节低字节0x00 03高字节低字节0xXXXX从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节0x03 6 温度高位温度低位湿度高位湿度低位状态高位状态低位高字节低字节0xXXXX注意:状态:0x80 00 表示温度为负,0x00 00 表示温度为正例如:命令:01 03 00 22 00 00 e5 c0返回:01 03 06 01 21 02 E3 80 00 0d 2d2.读继电器设定值(温度上限、温度下限、湿度上限、湿度下限、温度回滞、湿度)命令:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 10 温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节例如:命令:01 03 00 33 00 00 b5 c5返回:01 03 0A 01 05 00 A1 02 56 01 C3 0A 32 C5 B2 3.读补偿状态及温湿度补偿数值:主机读数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验>5ms延迟1字节(0x01) 0x03 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节从机返回数据格式:开始从机地址命令字节数数据CRC校验>5ms延迟1字节(0x01) 0x03 5 补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节例如:命令:01 03 00 44 00 00 05 df返回:01 03 05 00 00 04 00 08 F2 95注意:补偿状态=0x00 表示关补偿=0x11表示开补偿补偿高字节=0x00表示正补偿=0x11表示负补偿3.写继电器设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x0010字节温度上限高位温度上限低位温度下限高位温度下限低位湿度上限高位湿度上限低位湿度下限高位湿度下限低位温度回滞湿度回滞高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x33高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 33 00 00 0a 01 93 00 cd 03 20 01 96 05 05 68 4f 返回:01 10 00 33 00 00 30 063.写温度补偿设定值命令:主机写数据格式:开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 044高字节低字节0x00 0x005字节补偿状态温度补偿高字节温度补偿低字节湿度补偿高字节湿度补偿低字节高字节低字节从机返回数据格式:开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 0x44高字节低字节0x00 0x00高字节低字节例如:命令:01 10 00 44 00 00 05 11 00 05 11 03 6e 04 返回:01 10 00 44 00 00 80 1C4.写IP地址:主机写数据格式:01 10 00 55 00 00 01 02 1c 5b开始从机地址命令寄存器起始地址寄存器个数写入字节数数据CRC校验10 ms 1字节(0x01)0x10 高字节低字节0x00 055高字节低字节0x00 0x00字节数0x010x02(IP地址)0x1c(高字节)0x5b 低字节从机返回数据格式:02 10 00 55 00 00 D0 2A开始从机地址命令寄存器起始地址寄存器个数CRC校验10 ms 0x02 0x10 高字节低字节0x00 0x55高字节低字节0x00 0x00高字节低字节0x2b 0x9cIP改后测试:读新地址数据:命令:02 03 00 22 00 00 e5 f3返回:02 03 05 00 D1 01 5D 00 A2 EB附件:读数命令(1-10):01 03 00 22 00 00 e5 c002 03 00 22 00 00 e5 f303 03 00 22 00 00 e4 2204 03 00 22 00 00 e5 9505 03 00 22 00 00 e4 4406 03 00 22 00 00 e4 7707 03 00 22 00 00 e5 a608 03 00 22 00 00 e5 5909 03 00 22 00 00 e4 880a 03 00 22 00 00 e4 bb0b 03 00 22 00 00 e5 6a0c 03 00 22 00 00 e4 dd0d 03 00 22 00 00 e5 0c0e 03 00 22 00 00 e5 3f0f 03 00 22 00 00 e4 ee改IP命令(1-10)01 10 00 55 00 00 01 02 1c 5b01 10 00 55 00 00 01 03 dd 9b01 10 00 55 00 00 01 04 9c 5901 10 00 55 00 00 01 05 5d 9901 10 00 55 00 00 01 06 1d 9801 10 00 55 00 00 01 07 dc 5801 10 00 55 00 00 01 08 9c 5c01 10 00 55 00 00 01 09 5d 9c01 10 00 55 00 00 01 0a 1d 9d01 10 00 55 00 00 01 0b dc 5d01 10 00 55 00 00 01 0c 9d 9f01 10 00 55 00 00 01 0d 5c 5f01 10 00 55 00 00 01 0e 1c 5e01 10 00 55 00 00 01 0f dd 9eCRC校验:unsigned char code auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40};unsigned char code auchCRCLo[]={0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40};unsigned int calcrc16(unsigned char *puchMsgg,unsigned int usDataLen){unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/unsigned int uIndex ; /* CRC循环中的索引*/while (usDataLen--) /* 传输消息缓冲区*/{uIndex = uchCRCHi ^ *puchMsgg++ ; /* 计算CRC */uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;uchCRCLo = auchCRCLo[uIndex] ;}return (uchCRCHi << 8 | uchCRCLo) ;}CRC例子:(写命令返回数据)uart1_send_buf[0]=00x01;//slaveaddr;uart1_send_buf[1]=0x10;uart1_send_buf[2]=register_start_addr/256; //寄存器起始地址uart1_send_buf[3]=register_start_addr%256;uart1_send_buf[4]=register_count/256; //寄存器个数uart1_send_buf[5]=register_count%256;crc=calcrc16(uart1_send_buf, 6 );uart1_send_buf[6]=crc/256;uart1_send_buf[7]=crc%256;----------------------------------------------------------------------------------------------------------------------。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SHT10温湿度传感器的通信协议命令包含:
1.读取站号命令
2.写站号命令
3.读取数据
4.手动矫正数据
串口参数设置:
读站号命令(固定命令)
主站
从站地址功能码H地
址
L地址 H数
据
L数据 CRC
00 03 00 01 00 01 CRClo CRChi 从站
从站地址功能码H地址L地址H数据CRC
00 03 02 00 XX CRClo CRChi 注:返回帧与主站相同
设备地址:(XX=01-FF)
示例:
命令00 03 00 01 00 01 D4 1B(固定命令)
回复00 03 02 00 FF C5 C4 (设备默认站号FF)
写站号命令
主站
从站地址功能
码
H地
址
L地
址
寄存
器个
数
寄存
器个
数
数据
长度
数据CRC
00 10 00 01 00 01 02 00 XX CRClo CRChi 注:(XX=0X01-0XFF)
从站
从站地址功能码 H地
址
L地址寄存器个数CRC
00 10 00 01 00 01 CRClo CRChi 示例:
命令00 10 00 01 00 01 02 00 33 EA 04
回复00 10 00 01 00 01 51 D8
读数据
主站
从站地址功能码 H地
址
L地址寄存器
个数
寄存器
个数
CRC
XX 03 00 00 00 02 CRClo CRChi
注:(XX=0X01-0XFF)
从站
从站地址功能码数据长
度
数据数据CRC
XX 03 04 19 AD 1B E4 CRClo CRCh 示例
命令FF 03 00 00 00 02 D1 D5
回复FF 03 04 19 AD 1B E4 79 FA
注:温度:第4,5个字节19 AD温度=读数/100-40度湿度:第5,6个字节1B E4。