Stm32中RS 485实验中,为什么串口调试助手使用教程要点TRS或DTR

淘宝某款三合一光照温湿度传感器  实现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]相等。

// TODO: 在此处添加消息处理程序代码 UpdateData(FALSE);//成员变量的值在控制中体现出来.当为TRUE时,将控件中用户输入的值赋值给成员变量

我要回帖

更多关于 串口调试助手使用教程 的文章

 

随机推荐