请问用串口1做接收和发送波特率配置
同一个串口收发波特率肯定是相同的,非要不一样的话那你得用两个串口才行 hsrzq 发表于 2023-6-26 20:04
同一个串口收发波特率肯定是相同的,非要不一样的话那你得用两个串口才行 ...
不是的,同一个串口我用STC89C52,用定时器2做接收波特率,定时器1做发送波特率,输入和输出波特率不一样。能用的。手上有一些STC12芯片想用掉。我再研究研究 dbkdz 发表于 2023-6-26 20:32
不是的,同一个串口我用STC89C52,用定时器2做接收波特率,定时器1做发送波特率,输入和输出波特率不一样 ...
搞定了发出来看一下,或者你直接把STC89的发出来看看,想见识见识这种牛逼东西~~ hsrzq 发表于 2023-6-26 23:40
搞定了发出来看一下,或者你直接把STC89的发出来看看,想见识见识这种牛逼东西~~ ...
89C52定时器2,你仔细看:
mov t2con,#00100100b ;T2当串口接收波特率,且启动T2; RLCK=1 定时器2的溢出脉冲做串行口模式1或3的接收时钟
我用T2做接收波特率,用T1做发送波特率。能看懂没?
mov tmod,#00100001b;定时器工作方式寄存器高4位是定时器1设置:工作模式2,8位计数器自动重载初值;低4位是定时器0设置 方式1 16位定时器/计数器
hsrzq 发表于 2023-6-26 23:40
搞定了发出来看一下,或者你直接把STC89的发出来看看,想见识见识这种牛逼东西~~ ...
正在验证我的思路:
STC12C系列 晶振11.0592串口12400波特率 8位数据
独立波特率发生器 倍速SMOD打开 定时器时钟12T
ORL PCON,#80H ;使能波特率倍速位SMOD
MOV SCON,#50H ;8位数据,可变波特率
ANL AUXR,#0FBH;定时器时钟12T模式
ORL AUXR,#01H ;串口1使用独立波特率发生器
ORL AUXR,#10H ;启动独立波特率发射
;思路 初始化检测拨码定位当前接收波特率。
;串口RXD接收完,再改固定2400波特率发送,发完了再检测拨码改回去
MOV BRT,#0E8H ;2400重载值
MOV BRT,#0F4H ;4800重载值
MOV BRT,#0FAH ;9600重载值
MOV BRT,#0FFH ;115200重载值
hsrzq 发表于 2023-6-26 23:40
搞定了发出来看一下,或者你直接把STC89的发出来看看,想见识见识这种牛逼东西~~ ...
老兄,我验证成功,完美实现进来多种波特率,出去固定波特率或者拨码选择其他波特率。这个问题困扰我好几天了!终于解决了。思路就是:接收完了改波特率发送,发完了再改回去 (感谢我西安同学提供的思路) dbkdz 发表于 2023-6-27 10:42
正在验证我的思路:
STC12C系列 晶振11.0592串口12400波特率 8位数据
我有个产品就是要这样用的。1进1出1串口,半双工就行。全双工要用2个串口了。关键是我硬件电路PCB做完了一批了。恰好手上有几百个STC12单片机想用掉。就研究它。能解决问题就好了。 楼主真棒,解决就好!
页:
[1]