guoshanjing0808 发表于 2020-4-4 11:41:51

RCHF漂移太大如何解决?

前一段时间写好的UART程序,经过测试能够正常使用,隔离大概一个星期发现RTC数据能够正常发送至上位机,但是接收到的数据与发送的不一致。通过AHB64分频,PG6上测得的频率为133.7KHz,换算RCHF为8.557MHz与8M RCHF差距太大,请问这是什么原因造成的?
官方时钟初始化程序:

void Init_System(void)
{      
    /*基础系统配置*/
    __disable_irq();            //关闭全局中断使能
    IWDT_Init();                //系统看门狗设置
    IWDT_Clr();                  //清系统看门狗   
   
    Init_SysTick();                //cpu滴答定时器配置(软件延时用)   
    TicksDelayMs( 10, NULL );    //软件延时,系统上电后不要立刻将时钟切换为非RCHF8M,也不要立刻进休眠否则可能导致无法下载程序
   
    Init_SysClk_Gen();            //系统时钟配置
    RCC_Init_RCHF_Trim(clkmode);             //RCHF振荡器校准值载入(芯片复位后自动载入8M的校准值)
   
    /*外设初始化配置*/
    Init_Pad_Io();                //IO口输出寄存器初始状态配置
    Close_None_GPIO_80pin();    //关闭80脚芯片不支持的IO
    Close_AllIO_GPIO_80pin();   //关闭全部IO
   
    /*用户初始化代码*/
    Init_IO();
   
    /*准备进入主循环*/
    //TicksDelayMs( 0, NULL );            //软件延时
   
    //LED0_Flash(5);                //软件延时,闪灯五次
   
    __enable_irq();                //打开全局中断使能
}


songjihe 发表于 2020-4-9 14:00:25

您好,可以加下我的QQ,1012327173

顾博文 发表于 2020-4-9 14:51:24

是不是主程中调用了RCHF 校准, 然后又没有焊32768晶振导致的. 这个校准函数不推荐一直调用. 如果32768停振或没焊会导致直接校偏.RCHF 全温区+-2%误差. 已满足一般通信.
页: [1]
查看完整版本: RCHF漂移太大如何解决?