N76E/MS51提高串口波特率115200

更改HIRC频率的步骤如下:
1. Trim value = RCTRIM0(HIRCTRIM[8:1]) + RCTRIM1(HIRCTRIM[0])
将Trim value–15可以调整HIRC的频率为16.6 MHz。
2. 将计算值写回RCTRIM0 和RCTRIM1,写入后HIRC的更改会立即生效。
3. 每次上电后HIRC会恢复成16 MHz,使用者需要通过写SFR来更改HIRC。
4. 按照16.588 MHz重新计算baud rate,再设定timer产生的baud rate就能符合标准baud rate。

void Make_HIRC_16p6MHz(void)
{
        unsigned char hircmap0, hircmap1;
        unsigned int  trimvalue16bit; /* Since only power on will reload RCTRIM0 and RCTRIM1 value, check power on flag*/
        
        //产生上电复位(冷复位),其它任何方式复位不会影响改位(POF)
        if((PCON & SET_BIT4) == SET_BIT4)
        {
                hircmap0 = RCTRIM0;
                hircmap1 = RCTRIM1;
               
                trimvalue16bit = ((hircmap0<<1) + (hircmap1&0x01));
                trimvalue16bit = trimvalue16bit - 15;

                hircmap1 = trimvalue16bit  & 0x01;
                hircmap0 = trimvalue16bit >> 1;
               
                TA = 0xaa;
                TA = 0x55;
                {
                        RCTRIM0 = hircmap0;
                }
                TA = 0xaa;
                TA = 0x55;
               
                RCTRIM1 = hircmap1;
               
                //After modify HIRC value, clear power on flag
                PCON &= CLR_BIT4;
        }
}

把上面的代码 放入在初始化函数中。就可以提高到主频16.6Mhz

void Uart0_MyInit_Base16p6MHz(void)
{
        P06_Quasi_Mode;               
        P07_Quasi_Mode;
        
        //SCON寄存器:模式1/接收总是有效不管停止位的逻辑电平/接收使能
        SM0 = 0;
        SM1 = 1;
        SM2 = 0;
        REN = 1;
        
        P06_Quasi_Mode;
        P07_Quasi_Mode;        
        
        SCON = 0x50;     //UART0 Mode 1/SM1=1/REN=1
                                 //模式1/接收总是有效不管停止位的逻辑电平/接收使能
        
       set_SMOD;          //UART0 Double Rate Enable
       T3CON &= 0xF8;  //T3PS:2/T3PS:11/T3PS:0 = 000(时钟分频 = 1/1)
       set_BRCK;           //串口0波特率时钟源为Timer3
     
                        RH3 = 0xff;
                        RL3 = 0xf7;
 

 
        set_TR3;        
        
        ES = 1;
}

把上面的代码放入初始化中,就可以调整串口的波特率为115200

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值