打印

串口波特率为9600,那1S理论上能传几个我想发送的数据?

[复制链接]
15282|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feilusia|  楼主 | 2013-11-20 21:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个问题困扰我很久了,总是似懂非懂。晚上突然觉得问题要完全搞懂才能进步,所以请教大神们是不是该这样算:

每秒传输字节数=9600/8=1200字节。

同步模式:一次性传输,同步字符(1~2个)+数据+(适当的错误检测数据)
如果1S内的数据帧是完整的,那么,实际传输我想发的数据=1200-同步字符-适当的错误检测。

异步模式:分多次传输,每次为“1位起始位+7位ASCII编码+1位奇偶校验位+1位停止位”
如果它是连续传输的,那么,实际传输我想发的数据≈9600/10=960字节
沙发
feilusia|  楼主 | 2013-11-22 17:06 | 只看该作者
有人知道么

使用特权

评论回复
板凳
戈卫东| | 2013-11-22 18:39 | 只看该作者
如果是9600BPS,应该是异步吧,要去掉起始位停止位,最多9600/10=960.

使用特权

评论回复
地板
戈卫东| | 2013-11-22 18:40 | 只看该作者
实际上如果需要可靠,需要一定的容错措施,那就达不到这个速率.

使用特权

评论回复
5
feilusia|  楼主 | 2013-11-22 20:49 | 只看该作者
戈卫东 发表于 2013-11-22 18:39
如果是9600BPS,应该是异步吧,要去掉起始位停止位,最多9600/10=960.

为什么9600就是异步呢?同步没有9600?

使用特权

评论回复
6
戈卫东| | 2013-11-22 21:27 | 只看该作者
feilusia 发表于 2013-11-22 20:49
为什么9600就是异步呢?同步没有9600?

9600这个业界标准的速率,大家都是用在异步通讯上面的...
而且,如果是同步的,通常不很在乎速率是否符合"业界通用速率"---因为有时钟信号,只要不超过上限,多少都可以的.

使用特权

评论回复
7
feilusia|  楼主 | 2013-11-23 09:04 | 只看该作者
戈卫东 发表于 2013-11-22 21:27
9600这个业界标准的速率,大家都是用在异步通讯上面的...
而且,如果是同步的,通常不很在乎速率是否符合"业 ...

这样。那我还有两个串口的疑问想请教:
1)串口线的地线是否必要?
我看有的串口只用了TX和RX,是不是因为其他模块(如电源)等是共地的,所以串口那就不接地线。

2)异步通信的串口接收时的超时时间应该为多大?
由于我的程序中还有其他优先级更高的中断会嵌套中断串口,所以这个超时时间不能太短也不能太长。
是不是该这么算:比如STM8L的时钟频率是16M,查看时序可知每个位间距为1clock(1/16M),所以最小的超时时间是1/16M,然后再设置的稍微大一点,比如设置为(1/16M)*1.5。



QQ截图20131123085914.jpg (24.85 KB )

QQ截图20131123085914.jpg

使用特权

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

本版积分规则

个人签名:1、博客:http://blog.csdn.net/feilusia 2、QQ群:STM8/STM32群(164311667);职场交流群(450154342);CC2640R2F群(557278427) 3、淘宝店:https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i

135

主题

1956

帖子

94

粉丝