查看: 4128|回复: 6

[项目] 【GD32】关于小红板时钟配置的故事

[复制链接]
  • TA的每日心情
    奋斗
    2017-7-17 13:49
  • 签到天数: 367 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-2 17:23:16 | 显示全部楼层 |阅读模式
    分享到:
    GD32资料共享链接:http://pan.baidu.com/s/1ntDtD4P
    密码:iybb
    1GD32】开箱晒照
    2GD32】上电&软件环境
    3GD32】硬件原理&软件开发&Demo
    4GD32】做开发(全文字)
    /*------------------------------正文分割线-----------------------------------------------*/
    里面提到被GD32的官方固件库坑~~~
    我在9楼做了回复哈

    因为我是按照给的小红板例程进行测试的,测试正常,LED闪烁正常,因此对时钟不以为意,直到今天群里还在说关于GD32小红板时钟配置有问题的事情,我才知道大神是直接利用官方提供的固件库自己建立工程的哈

    ~~~
    1.png
    对应GD32大赛活动资料提供界面的位置
    https://www.cirmall.com/gd32/ziliao/#activity
    2.png
    我们来对比一下,两者在时钟配置的差异!
    3对比.jpg
    左边是正常例程中的代码,右边是官方的固件库
    程序启动,启动文件bootloader节选startup_gd32f1x0.s
    ,建立程序运行环境,这也说明启动文件的重要性
    4.png
    设置时钟是在system_gd32f1x0.c中的System_Init  ->  Set_SysClock ->  (SYSCLK_FREQ_72MHz)  Set_SysClockTo72  
    ——就是这么一个流程
    时钟是数字电路的灵魂,如果始终都设置错了,怎么得了!
    现在剖析一下怎么个利用HSI设置系统时钟到72MHz!!!
    system_gd32f1x0.c的第603~718
    1.等待HSE稳定,小红板没有HSE自然不会稳定
    5.png
    注意:据官方资料,GD32HSE支持4~32MHz,STM324~16M有不同
    2.等待HSE稳定超时,
    6.png
    设置一个标志位:tmp_HSEStatus = (uint32_t)0x00;
    3.接下来直接从第661行执行开始!
    7.png
    关闭HSE,开启HIS,等待HSI稳定
    HIS肯定有啊,所以设置一个标志位:tmp_HSIStatus= (uint32_t)0x01;(667)
    8.png
    4设置系统时钟为72MHz
    9.png
    设置AHB,APB时钟
    设置PLL倍频参数
    使能PLL
    等待PLL稳定
    选择PLL为时钟源
    等待设置完成
    HSI_set.png
    ok,纠结的时钟问题终于解决了~~~








    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-7-3 08:38:54 | 显示全部楼层
    非常好的技术贴
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-3 08:46:09 | 显示全部楼层
    我懒得一个一个的去看文档。随便下载了个固件库自己建个工程。还以为是兼容小红板开发板的。谁知时钟竟然是不对的。哎~~~~~~~~~~~  如果能像ST的能兼容就好了,何必还要分开来搞?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-17 13:49
  • 签到天数: 367 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-3 08:58:27 来自手机 | 显示全部楼层
    ts2000 发表于 2015-7-3 08:46
    我懒得一个一个的去看文档。随便下载了个固件库自己建个工程。还以为是兼容小红板开发板的。谁知时钟竟然是 ...

    主要是这块板子没有hse
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-7-14 10:15
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2015-7-3 10:01:57 | 显示全部楼层
    ts2000 发表于 2015-7-3 08:46
    我懒得一个一个的去看文档。随便下载了个固件库自己建个工程。还以为是兼容小红板开发板的。谁知时钟竟然是 ...

    时钟树是mcu启动时需要关心的第一个重点。板子上没有HSE,那必然是用了HSI。即使是自己新建的工程,采用了官方的库,那也要关心时钟和PLL的问题。时钟配置的检查是必须的。顺便说一下,中断注册表也是需要关注的地方。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-7-3 13:33:12 | 显示全部楼层
    不错呦。。楼主。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-17 13:49
  • 签到天数: 367 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-3 16:15:42 | 显示全部楼层
    trochili 发表于 2015-7-3 10:01
    时钟树是mcu启动时需要关心的第一个重点。板子上没有HSE,那必然是用了HSI。即使是自己新建的工程,采用 ...

    鸟哥说得对,关于启动流程bootloader的部分,可以专门发帖讲讲,虽然st已经讲烂了……但是不是所有开发者都熟悉这个流程
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 10:51 , Processed in 0.185107 second(s), 28 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.