打印
[STC单片机]

STC单片机的硬件串口能不能把停止位设置为2位

[复制链接]
33607|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
supertankhzt|  楼主 | 2016-6-30 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 supertankhzt 于 2016-6-30 17:30 编辑

在做SBUS协议通讯,就是一个反相的UART串口,波特率100kbps,8位数据,偶校验,2位停止位,无流控。
STC的文档翻了一遍,貌似并没有设置停止位位数的相关寄存器,默认只能是一位,如果连续发数据的话,怕是接收端不认,目前想到的方法只有发完一个字节后软件延迟一位时间再发下一个字节。

相关帖子

沙发
supertankhzt|  楼主 | 2016-7-16 14:40 | 只看该作者
然而半个月过去了,还是没人QAQ。。。
测试了一位停止位,有的接收端能认,有的不认,这样的兼容性差,还是得延时10us到两位停止位。
循环延时法在多任务程序中不可取,定时器用完,想到用多余的PCA模块做定时器,完美解决。

使用特权

评论回复
板凳
coody| | 2016-7-16 21:49 | 只看该作者
原则上51不能设置2个停止位,但是,你可以设置成9位数据格式,校验位一直写1,就OK了,完全等效。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
supertankhzt + 2 赞一个!
地板
supertankhzt|  楼主 | 2016-9-7 11:21 | 只看该作者
coody 发表于 2016-7-16 21:49
原则上51不能设置2个停止位,但是,你可以设置成9位数据格式,校验位一直写1,就OK了,完全等效。 ...

我怎么没想到,原来可以这样啊,谢谢了,早知道就可以节省一路PCA,也节省CPU时间和程序复杂度

使用特权

评论回复
5
datouyuan| | 2016-9-7 17:54 | 只看该作者
supertankhzt 发表于 2016-9-7 11:21
我怎么没想到,原来可以这样啊,谢谢了,早知道就可以节省一路PCA,也节省CPU时间和程序复杂度 ...

对,把TB9用上.

https://bbs.21ic.com/icview-1595994-1-1.html
详细按楼主的做法.

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
supertankhzt + 2 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

15

帖子

0

粉丝