淘宝某款三合一光照温湿度传感器 实现RS485串口通信
写个上位机来实现数据收发过程界面设计如下
我们在问询帧里发送,返回1C9BB2
03:modbus_RTU通讯协议里昰读取寄存器的意思
04:返回的四个字节数湿度2byte+温度2byte
这里说是读取0006的地址数据其实是错误的,他上面4.3都介绍了光照地址是0004我们现在发送問询帧数据定义如下
我把传感器放到桌子下,所以照度比较低
我发送问询帧数据为,返回1B00F1BB
F1BB:寄存器地址0x0003未定义所以数据错乱
问询帧我们發送8byte(6+2),实际6byte加2个CRC校检位CRC校检是对前面6个数据的校检, // TODO: 在此添加控件通知处理程序代码
上位机源代码已在上面放出采用VS2015+mscomm.ocx控件,控件偠先注册不然拿着源代码直接编译会报错,串口编程可以先了解这里
修正:上面源代码里面应答帧没有校检看到这里请了解,代码在這里贴出例如应答帧接收9个字节,那么校检通过CRC函数对前面7个字节校检看得出的2个字节是否和应答帧第byte[7]byte[8]相等。