打印

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

[复制链接]
15400|11
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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 说的是波特率还是比特率啊?有点混淆

使用特权

评论回复
5
xwj| | 2009-4-8 09:19 | 只看该作者

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

先去把串口通讯的时序搞清楚,自然就会明白了

使用特权

评论回复
6
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。

使用特权

评论回复
7
computer00| | 2009-4-8 10:03 | 只看该作者

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

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

例如发送一个数据位的时间是1ms,那么停止位的时间就是1.5ms。

使用特权

评论回复
8
gudeng614| | 2009-4-8 11:02 | 只看该作者

学习了

如果放一小段程就更好啦

使用特权

评论回复
9
ayb_ice| | 2009-4-8 20:35 | 只看该作者

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

使用特权

评论回复
10
ccjchen|  楼主 | 2009-4-8 22:34 | 只看该作者

谢谢各位!

使用特权

评论回复
11
songbangyan| | 2009-4-9 14:36 | 只看该作者

学习

使用特权

评论回复
12
yppic82| | 2014-2-7 20:24 | 只看该作者
现在才明白

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

粉丝