GD32资料共享链接:http://pan.baidu.com/s/1ntDtD4P 密码:iybb 1【GD32】开箱晒照 2【GD32】上电&软件环境 3【GD32】硬件原理&软件开发&Demo 4【GD32】做开发(全文字) /*------------------------------正文分割线-----------------------------------------------*/ 里面提到被GD32的官方固件库坑~~~ 我在9楼做了回复哈
因为我是按照给的小红板例程进行测试的,测试正常,LED闪烁正常,因此对时钟不以为意,直到今天群里还在说关于GD32小红板时钟配置有问题的事情,我才知道大神是直接利用官方提供的固件库自己建立工程的哈
~~~
对应GD32大赛活动资料提供界面的位置 左边是正常例程中的代码,右边是官方的固件库 程序启动,启动文件bootloader节选startup_gd32f1x0.s ,建立程序运行环境,这也说明启动文件的重要性
设置时钟是在system_gd32f1x0.c中的System_Init -> Set_SysClock -> (SYSCLK_FREQ_72MHz) Set_SysClockTo72 ——就是这么一个流程 时钟是数字电路的灵魂,如果始终都设置错了,怎么得了! 现在剖析一下怎么个利用HSI设置系统时钟到72MHz!!! system_gd32f1x0.c的第603~718行 1.等待HSE稳定,小红板没有HSE自然不会稳定 注意:据官方资料,GD32的HSE支持4~32MHz,与STM32的4~16M有不同 2.等待 HSE稳定超时,
设置一个标志位:tmp_HSEStatus = (uint32_t)0x00; 3.接下来直接从第661行执行开始! 关闭HSE,开启HIS,等待HSI稳定 HIS肯定有啊,所以设置一个标志位:tmp_HSIStatus= (uint32_t)0x01;(667)
4设置系统时钟为72MHz
设置AHB,APB时钟
设置PLL倍频参数
使能PLL
等待PLL稳定
选择PLL为时钟源
等待设置完成
ok,纠结的时钟问题终于解决了~~~
|