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(); //打开全局中断使能
}
您好,可以加下我的QQ,1012327173 是不是主程中调用了RCHF 校准, 然后又没有焊32768晶振导致的. 这个校准函数不推荐一直调用. 如果32768停振或没焊会导致直接校偏.RCHF 全温区+-2%误差. 已满足一般通信.
页:
[1]