51单片机串口收发

下面的示例代码基于51单片机,用于快速二次开发实现基于串口字符串通信控制程序(比如要实现电脑控制单片机的开灯和关灯),示例很言简意赅,并附上了详尽的注释,

本示例代码经过了更新,新版本代码更加友好了,

尊重作者的劳动,转载请记得注明来源:http://www.cnblogs.com/weifeng727/p/5617924.html

1 #include<reg52.h>

2 3//------------------串口通信的数据包协议-----------------//

4/* 5 此程序的串口字符串通信使用到下面的一个自定义协议,每次通信都是发送或接收一个数据包,数据包格式解释如下(长度恒为15):

6 例如:A01_fmq_01Off___#

7 A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种)

8 01-----设备代号

9 fmq_01Off___--------指令(长度恒为10),指令的前4个人字符是指令头部,指令的后6个字符是指令尾部

10 #---------数据包的结束标记

11 12 例如:A02_SenT010250#

13 A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种)

14 02-----设备代号

15 SenT010250--------指令(长度恒为10),指令的前4个人字符是指令头部,指令的后6个字符是指令尾部

16 #---------数据包的结束标记

17*/ 18char RecvString_buf[16]; //定义数据包长度为15个字符 19#define deviceID_1Bit '0' //用于串口通信时,定义本地设备ID的第1位 20#define deviceID_2Bit '2' //用于串口通信时,定义本地设备ID的第2位 21#define datapackage_headflag 'A' //用于串口通信时,定义数据包头部的验证标记 22 23char DataPackage_DS18B20[16]={datapackage_headflag,deviceID_1Bit,deviceID_2Bit,'_','S','e','n','T','X','X','X','X','X','X','#'}; //这个是曾经用来控制温度传感模块(DS18B20)的数据包 24char HeartBeat[16]={datapackage_headflag,deviceID_1Bit,deviceID_2Bit,'_','B','e','a','t','X','X','X','X','X','X','#'}; //我随便定义了一个数据包用来做"心跳包",比如单片机系统向电脑每2秒发送一次该数据包,如果电脑没有按时接收到,就认为单片机死掉了

25//----------------------------------------------//

26/**********

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值