单片机学习小组
直播中

刘艳芳

7年用户 231经验值
私信 关注

请问51单片机串口和上位机通信协议的接收函数如何写?

    现在我的51单片机的功能已经做好了,但是要上位机那边控制我的单片机工作,因为我以前没做过和上位机通信,现在单片机和上位机的通讯协议如下,现在发送数据包函数很容易写,但是接收一串数据包的函数不懂怎么写,有谁能指导下我怎么写接收上位机的数据包的函数啊

回帖(3)

李思昊

2019-6-11 14:05:01
帮顶.....
举报

黎歆俭

2019-6-11 14:23:28
这个其实不是很难,给楼主提供下大概思路。因为你的一次有效数据为4位,所以就定义一个包含四个元素的数组,然后在串口中断中判断接收完成标志,成功则清零标志,把接收到的数始终放在数组的字一个元素里,然后判断这个值是不是起始值0x80,如果是则i累加,使后面的数存在数组后面的元素里。收到四个数,则标志接收正常,置位一个标志位,然后在主函数里判断这个标志位,就可以解析数据,做相应动作了。仅供楼主参考。
举报

杨燕

2019-6-11 14:33:59
为何校验还要取反呢
1 举报
  • 阿信509: 你自己计算的校验结果和发送过来的校验值相加等于0就证明接收的数据是正确的,所以才取反

更多回帖

发帖
×
20
完善资料,
赚取积分