STC8 实现 115200 波特率串口通信

平台

STC8A8K64S4A12

 

背景

手头上刚好有这个51板子,按 STC-ISP 范例进行115200 波特率串口通信时居然不OK,输出乱码!!!但是,按官方手册计算方式换成 9600 进行通信正常,为此走了一点坑,下面直接说解决方案吧

 

1 贴重点,如下图红框处所示(一开始我自己也没有注意到),STC8 发送端需要软件设置为强推挽输出模式或者外接3-5K的上拉电阻

2 好了,那么发送端设置为强推挽输出即可,接收端呢?设置为准双向即可。我这边用的是串口1,则设置如下,将如下设置添加到范例 uart 初始化函数最开头部分即可

P3M0 = 0xFE; //TX 设置强挽推,RX设置准双向

P3M1 = 0x00;

 

3 有个疑问为什么波特率设为 9600 时,不用做如上 IO 配置也可正常输出数据呢?这个对于不了解的新手,若是一开始 9600 通信成功后,再排查 115200 波特率通信问题岂不是很坑了。其次范例程序既然是以 115200 波特率通信做demo,那么应该在 uart 初始化函数上就加上 IO 的配置,要不然很容易让新手出现115200 输出乱码,或者RX配错,进不了接收中断

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值