打印

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

[复制链接]
1554|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

粉丝