STC15W4K61S4,内部rc串口二异常

[复制链接]
5994|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),从来没有你说的这个问题。

使用特权

评论回复
评论
24kdewhite 2020-12-31 15:17 回复TA
是中断问题,我没有使用忙标志,导致波特率高了就有问题 
linguanghua| | 2020-12-31 14:10 | 显示全部楼层
对应的io口需要设为推挽。

使用特权

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

本版积分规则

35

主题

275

帖子

3

粉丝