第一次搞串口通信,有些凝问请哪位大哥当回老师,谢谢!

[复制链接]
2748|3
 楼主| gmgmgm 发表于 2009-10-30 01:21 | 显示全部楼层 |阅读模式
本帖最后由 gmgmgm 于 2009-10-30 01:22 编辑

我在搞一个PELCO—D协议的控制,现在接收和发送都能实现了,问题是怎样一次性接收到一连串的码,比如要接收一串码:01 23 45 67 89 ab cd,这是完整的一组控制数据,工作模式是10位,开始1位+8位数据+停止1位,搞了半天不知道怎样才能把这一串码完整接收下来?不懂的是,是否每接收一个8位数据就要去判它的停止位,然后收到停止位后就把这8位数据付给一个变量存起来?

想问一下的是,是否不管它一串码有多少个数据组成,每发完8位+1位停止位后,单片机就要中断一次?
maychang 发表于 2009-10-30 07:01 | 显示全部楼层
没错,每收或发一帧,都要中断一次。
移动数据,那是你的事,硬件不管的。
HWM 发表于 2009-10-30 07:21 | 显示全部楼层
UART 自身已经能够自动完成一个字节的串位传输,传完一个字节后会申请中断,你只要响应中断将字节数据取出(接收)或载入待发字节(发送)即可。至于PELCO—D,它是一个定长传输协议,可以分配一个8字节缓冲区(如果考虑周到的话可以分配两个交换使用)。采用一个简单的状态机形式,将输入数据流和PELCO—D格式匹配。若匹配和检验成功,则完成接受,反之出错处理。
xialei8513 发表于 2013-5-5 20:12 | 显示全部楼层
咨询楼主,你是如果做停止位信号处理的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

135

主题

766

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部