单片机采集传感器数据(整形,浮点型)modbus上传

浮点型数据 占两个寄存器(四个字节)

short 整形 占一个寄存器 (两个字节)

注意!!!!

stm32 是小端模式,而modbus解析数据是大端模式 所以先发送高字节

如int a=16777220,化为十六进制是0x01 00 00 04,则04属于低字节,01属于高字节

单片机采集传感器数据(整形,浮点型)modbus上传_第1张图片

例如float a=125.6     十六进制0x42 fb 33 33  高字节 是42  低字节是33

所以在写modbus程序的时候,先发送高字节(高地址)  *p+3

单片机采集传感器数据(整形,浮点型)modbus上传_第2张图片

开关量处理方式

请求01 02 00 00 01 b9 ca 

注意01 代表 一个开关量(也可以表示一个寄存器,但是一个该寄存器代表一个开关量,和保持寄存器不同,保持寄存器一个寄存器代表两个字节)

响应01 02 01 01 60 48      01代表一个字节

具体讲解见MODBUS常用功能码学习及实例_modbus操作码_Steven邵的博客-CSDN博客

你可能感兴趣的:(单片机,嵌入式硬件)