串口上位机01

利用C#编写上位机,实现开关信号的控制,实现数据的发送和读取。
要求,能够扫描串口号,设置波特率,实现上位机给单片机发送数据,然后读取单片机发过来的数据进行校验,以达到识别单片机是不是接收到IO口的目的,如果3s内没收到数据,那么超时发送报警。

1=----RS232利用串口实现数据
定义格式
上位机,,,,下位机单片机

开关信号**:**
发送开关信号的发送和读取。
帧头+功能码+器件码+数据码1+0x55+0x55+0x55+0x55+0x55+校验码CSUM+帧尾。

帧头+功能码+器件码+数据码1+0x55+0x55+0x55+0x55+0x55+校验码CSUM+帧尾0+帧尾1。
帧头0+帧头1+功能码+器件码+数据码1+数据码2+数据码3+数据码4+数据码5+数据码6+校验码CSUM+帧尾0+帧尾1。
帧头:0x21+0x22
功能码:
0x01代表开关信号的发送---------------
0x02代表开关信号的读取
0x10----读取温度
0x11—设置温度
0x30—设置定时时间
0x31–读取单片机当前的启动时间
0x40–设置PID(三个参数都是乘以一百倍)进行发送,同时发送
0x41–读取当前PID参数。读取的是单片机乘以一百倍之后发送的数据,然后在里面进行整理
元器件号:
0x10----------第一个LED
0x11----------第二个LED
0x12---------第三个LED
0x13---------第四个LED
0x20---------第一个热电偶
0x21---------第二个热电偶
数据码:0x00-0xFF-----------------代表有255个数据的控制
校验码:前8个字节的和校验
帧尾:0X0D+0x0A

数据信号:
传送的是温度的数据,得到数据的长度123.45,总共是6个字节,包括小数点。
帧头+功能码+器件码+数据码1+数据码2+数据码3+数据码4+数据码5+数据码6+校验码CSUM+帧尾。

得到数据,是字符类型,然后分列出每个数据,进行检查。

思路:
扫描串口
设置波特率
打开串口,提示报错
文本框,显示每个字节的内容
帧头+功能码+器件码+数据码1+0x55+0x55+0x55+0x55+0x55+校验码CSUM+帧尾。
帧头0+帧头1+功能码+器件码+数据码1+数据码2+数据码3+数据码4+数据码5+数据码6+校验码CSUM+帧尾。

显示解码之后的数据,校验正确的话;
校验不准确,显示错误。

2—利用ModBus实现数据传递

猜你喜欢

转载自blog.csdn.net/lmf666/article/details/113048348