一、系统时钟
继上次的寄存器开发模板,模板里未添加system_gd32f10x文件和gd32f10x.h文件,仅包含一个启动文件;系统时钟为默认的内部8MHz;需要使用外部晶振和PLL,需要自己编写一个系统时钟配置函数;
为串口不出现乱码和USB正常使用,配置为96MHz;
二、配置函数
void clk_96M_config(void)
{
/*使能外部时钟*/
(*((volatile unsigned int*)(0x40021000)))|=1<<16;
/*等待外部时钟稳定*/
while((1<<17)!=((*((volatile unsigned int*)(0x40021000)))&(1<<17)));
/*禁止外部时钟旁路*/
(*((volatile unsigned int*)(0x40021000)))&=~(1<<18);
/*使能外部时钟监测器*/
(*((volatile unsigned int*)(0x40021000)))|=1<<19;
/*配置时钟*/
(*((volatile unsigned int*)(0x40021000+0x04)))|=0x06E9C40A;
/*使能PLL*/
(*((volatile unsigned int*)(0x40021000)))|=1<<24;
/*等待PLL稳定*/
while((1<<25)!=((*((volatile unsigned int*)(0x40021000)))&(1<<25)));
}
三、附件
|