永发信息网

关于串口通信编程的疑问

答案:2  悬赏:10  手机版
解决时间 2021-12-24 12:44
  • 提问者网友:趣果有间
  • 2021-12-23 23:35
看到网上很多串口通信的代码,也就是上位机和下位机的通信。

现在有两个问题,
第一个:上位机发送数据的时候,为什么很多时候都要选择16进制发送方式?难道是因为下位机只认16进制的数据?

第二个:比如说我想要下位机干某个事情的时候,
我需要发送什么样的数据,这个“什么样的数据”我又是从何而知呢,我是从什么地方知道这些数据的,不同的下位机应该不一样吧

这两个地方很不明白,希望能够得到详细的答案
也就是说对于不同协议的通信方式,我就要发送不同命令?

这个协议的话,我应该到什么地方去了解,还是一般都有说明书?

有没有通用的协议?
最佳答案
  • 五星知识达人网友:过活
  • 2022-01-10 04:48
上位机以PC,下位机以单片机为例,两者在进行通信时一般用串口通信,而数据通过串口时是以16进制来传送的,为了发送、接收处理方便,建议通过函数做一下处理,使发送的数据为16进制,这样,通过串口接收到的数据也是相同的16进制,方便查看。
如果想让下位机做某事,则需要上位机给下位机发送指令,也就是数据帧,这个要根据协议来写,比如移动GSM、联通GSM协议,里边都有数据帧的格式以及具体定义。

补充:这个协议不是说串口通信协议,那个协议是根据用途或要求来采用的,比如说,要用单片机做一个联通GSM协议的数据通信,那么数据帧的格式必须是X开头,X结尾的,有固定的格式。再比如移动的,数据帧格式有7E开头7E结尾的,也有!开头!结尾的,如果你的数据帧格式不正确,将无法识别而不能做出相关的动作。
你如果只是自己弄着玩,数据帧可以自己定义,但如果要做项目,最好根据要求协议来编写。
全部回答
  • 1楼网友:佘樂
  • 2022-01-10 05:33
还真有些 复杂! 下位机 多半 是 诸如 单片机类的,如果2端约定用ascii码方式发送,字符很好处理,读解起来也容易,但 控制符 就不太好处理了! 其实,都可以用16进制方式发送,只是 接收方 读解起来 不便 发送什么样的数据 对方收到后怎么样反馈 都应该是 协议设计 的 范畴之内 实施编程前要充分考虑 可以借鉴前人也有的一些 协议 如 modbus 等等 多 查查 百度百科 吧 祝你顺利
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯