可以在硬件仿真的时候,在keil5->view->Register 里点开 你所选系列的IC的时钟相关寄存器,里面标志位可以看下。 如果提前挂掉,你就单步在时钟初始化函数里擦看。
我用的是130和105 130是使用内部HSI , 105用外部8MHZ晶振,库都用了2.0.0版本,systick都正常。 一般需要修改的函数有(以105距离): 你所选的gd32f10x..h文件里, 因为这里有宏定义选 多少时钟主频/* define value of high speed crystal oscillator (HXTAL) in Hz */
#if !defined HXTAL_VALUE
#ifdef GD32F10X_CL
#define HXTAL_VALUE (8000000) /*!< value of the external oscillator in Hz */ //CL系列支持
#else
#define HXTAL_VALUE ((uint32_t)8000000) /* !< from 4M to 16M *!< value of the external oscillator in Hz*/
#endif /* HXTAL_VALUE */
#endif /* high speed crystal oscillator value */
元器件的宏定义 放在Project->Options for Target "你工程的名字" C/C++ USE_STDPERIPH_DRIVER,GD32F10X_CL,
还有1个函数是system_gd32f10x_cl.s , 我的官网例子PLL倍频和分频是按照外部25MHZ晶振做的,我实际用的是8MHZ, 所以不排除官网的例子目前对于你这个30X型号的倍频和分频计算有问题。
ps: 建议你用Firmware 原版里面的templete 跑下, 不过默认晶振 型号 都要选好。 你的问题往往自己小角度的,别人很难理解你的实际,所以没办法精确定位,这个是大部分人提问的问题。 你的硬件电源跟GND以及Vcap 都要满足官网手册的设计。
|