串行异步通信中停止位1.5位怎么理解?

[复制链接]
16789|11
 楼主| ccjchen 发表于 2009-4-7 21:05 | 显示全部楼层 |阅读模式
串行异步通信中停止位(1,1.5,2位) ,里面的1.5位怎么理解?那位大侠给解释一下,谢谢!
computer00 发表于 2009-4-7 21:25 | 显示全部楼层

就是停止位占1.5位的数据宽度。一个数据宽度知道什么意思

ayb_ice 发表于 2009-4-7 21:36 | 显示全部楼层

就是1.5个波特率的宽度

 楼主| ccjchen 发表于 2009-4-8 09:14 | 显示全部楼层

还是有点不懂

   computer00 说的数据宽度是不是类似比如普通单片机C51是8位数据宽度,但是这个1.5位数据宽度是怎么体现出来的?比如说在程序中。
   ayb_ice 说的是波特率还是比特率啊?有点混淆
xwj 发表于 2009-4-8 09:19 | 显示全部楼层

唉,LZ先得理解时间和空间的对应、互换关系

先去把串口通讯的时序搞清楚,自然就会明白了
dudongdao 发表于 2009-4-8 09:23 | 显示全部楼层

是你发送字符每一而BIT的1.5倍时间。

这个1.5倍停止是单片机UART自动发出的。
比如你写一个UDR = 0X55;
那UART发送完数据后,最后发送的就是停止位,这个停止位的倍数就是你规定波特率后,发送停止位的时间,是普通的1.5倍。程序里没法体现,只能设置。就跟你发普通数据一样,你一个UDR = 0X55就发了,怎么发的也不用你程序控制是吧。  再如,你规定波特率后,发送一个BIT是1MS,那发送停止位的时候就是1.5MS。你设置为2那就是2MS。

computer00 发表于 2009-4-8 10:03 | 显示全部楼层

串口,数据就是串行发送的,也就是一个BIT一个BIT地发送的

既然是发送一个BIT,那么就需要一定的时间,这个时间就叫做发送一位所需要的时间(简写成位时间),
这个时间的倒数,就是波特率了。而这个停止位比较长(可以让接收端重新同步),占1.5个位时间的宽度。不知道你明白了没。

例如发送一个数据位的时间是1ms,那么停止位的时间就是1.5ms。
gudeng614 发表于 2009-4-8 11:02 | 显示全部楼层

学习了

如果放一小段程就更好啦
ayb_ice 发表于 2009-4-8 20:35 | 显示全部楼层

可能主要是保证可靠的发送间隙

 楼主| ccjchen 发表于 2009-4-8 22:34 | 显示全部楼层

谢谢各位!

songbangyan 发表于 2009-4-9 14:36 | 显示全部楼层
yppic82 发表于 2014-2-7 20:24 | 显示全部楼层
现在才明白

您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

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