如何利用STC内部的RC振荡器频率做串口通讯

2019-03-24 19:36发布

//--获取内部RC,但是需要转化成10进制
void Get_Rc(char rc)
{
  uchar idata *idata_point;
  uchar i=0;
uchar j=0;
  idata_point=0xF8;
for(j=0;j<=3;j++)
{
i=*idata_point;
//--send_UART(i);
idata_point++;
}

}
以上是我读内部RC频率的程序,不知道如何将其转化成10进制的频率,并进行串行通讯,波特率用这个公式:TH1=TL1=256 - ( CON_OSC / 1 / 32/ 11520 ) ?请大虾们指教 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
Li_Lei
2019-03-25 10:59
//2400*32*12=921600                2400*32=76800        14400*32=460800
//#define SYSOSCCLOCK                 31795200        31334400//晶振频率,HZ单位,取值倍数接近
#define SYSOSCCLOCK                         31795200
#define COM_BAUD_RATE                        14400
#define COM_SMOD_DOUBLE_SPEED                        //倍频设置时波特率的实际值=波特率设定*2 ,注释掉不设置倍频

/*********************************以下不必修改****************************************/
#if (SYSOSCCLOCK/32/COM_BAUD_RATE > 256)

#else
        #define COM_TIMER_1T_ENABLE                // 1T使能,与BRT使用无关
#endif

#ifdef COM_TIMER_1T_ENABLE
        #define COM_TIMER_SETUP        0xff-(uint8)(SYSOSCCLOCK/32/COM_BAUD_RATE)+1
#else
        #define COM_TIMER_SETUP        0xff-(uint8)(SYSOSCCLOCK/12/32/COM_BAUD_RATE)+1
#endif

确定 COM_TIMER_SETUP 为整数即可

一周热门 更多>