首页 > 其他 > 详细

关于串口通信中数据传输的问题

时间:2019-11-12 18:20:24      阅读:106      评论:0      收藏:0      [点我收藏+]

数据在串口通信的过程中是以字节为基本单位——也就是说发送的每一个数必需在0-255之间(现只考虑无符号的情况)。如果想发送256那就必须要分成两个数发(255+1)。

一般在串口通信中会遇到不同的收发格式,诸如ASCII,Hex之类的,只有确保收发两方的收发格式相同。

例:如果发的一方发送了50,收的一方如果用不同的接收格式接收,就会出现完全不同的数(以ASCII的格式接收,那么就会收到53+48)(以10进制的格式接收,那么就会收到的50)(以16进制的格式接收,那么就会收到32)

Ps.由上可知,以ASCII码格式收发,效率要明显慢很多

在用C#编写上位机的时候:

 byte[] sendBuf = new byte[2] { 21,0X21};

上面的21在发送的时候会默认为是十进制,0X21会默认为是十六进制(在发送的时候也会有一次数据转换)

当用十六进制的格式接收会收到15,21;用十进制的格式接收会收到21,33

 

关于串口通信中数据传输的问题

原文:https://www.cnblogs.com/f-t-q/p/11844104.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!