STC15W4K61S4,内部rc串口二异常

[复制链接]
6809|4
 楼主| 24kdewhite 发表于 2020-12-29 21:37 | 显示全部楼层 |阅读模式
使用内部22.1184m rc,产生115200或者9600的波特率,输出都是乱码,
只有换成内部11.0592m rc输出才能正常,是什么原因?
这款单片机内部rc最高27m,串口计算器在22.1184m时115200和9600误差是零,下载校准频率误差不超过0.1%

什么原因可能导致的在非115200波特率时乱码?

初始化如下
void UartInit(void)        //115200bps@22.1184MHz
{
    P_SW2 &= 0xfe;    //选择p10/p11位置为串口2
    S2CON = 0x50;        //8位数据,可变波特率
    AUXR &= 0xFB;        //定时器2时钟为Fosc/12,即12T
    T2L = 0xFC;        //设定定时初值
    T2H = 0xFF;        //设定定时初值
    AUXR |= 0x10;        //启动定时器2
    IE2 |= 0x01;        //使能串口2中断
    AUXR |= 0x14;    //启动定时器2
}

ayb_ice 发表于 2020-12-30 08:40 | 显示全部楼层
定时器用1T试试
linxi6414 发表于 2020-12-30 21:35 | 显示全部楼层
你的中断函数贴出来看一下,STC15W4K32和4K48用的比较多,并且是用在工业场合,并且我刚刚好是用的串口2做通讯(232转485),从来没有你说的这个问题。

评论

是中断问题,我没有使用忙标志,导致波特率高了就有问题  发表于 2020-12-31 15:17
linguanghua 发表于 2020-12-31 14:10 | 显示全部楼层
对应的io口需要设为推挽。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

279

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部