用过STM32单片机的知道,单片机的主频是需要使用者自己配置的,但是GD32库移植好后,不需要自己写时钟配置函数,库函数中会有默认的时钟配置函数,但是需要根据所选择的晶振频率修改几个地方修改方案有以下两种:

第一种方案:

1.第一处要修改的地方:修改gd32f10x.h 中的HXTAL_VALUE宏定义

这里我使用的是12M的晶振,因此修改成下面这样

#define HXTAL_VALUE    ((uint32_t)12000000)

2.第二处要修改的地方:修改system_gd32f10x.c 文件中的system_clock_108m_hxtal()函数

的如下图位置

因为我是12M晶振,要想设置主频为108M,这里先2分频再18倍频(即12、2*18=108M)

第二种方案:

这一种方案是我推荐使用的,这种方案使用的是STM32的时钟配置方案,时钟配置函数需要用户自己编写并调用,这样后面要改动时钟或者使能LSE都比较方便。总之灵活性更强。使用这种方案需要修改以下两个地方:

第一个要修改的地方:

1.修改gd32f10x.h 中的HXTAL_VALUE宏定义

这里我使用的是12M的晶振,因此修改成下面这样

#define HXTAL_VALUE    ((uint32_t)12000000)

2.将system_gd32f10x.c 文件中system_clock_config()函数中的system_clock_108m_hxtal()调用语句注释掉,如下图所示。

3.编写自己的时钟配置函数,并在main函数中调用

时钟配置函数代码如下:

/*** 说明 : 初始化内核时钟(108M)* 参数 : 无* 返回 : 无*/
void SystemClock_Config(void)
{/** 使能外部晶振 */rcu_osci_on(RCU_HXTAL);/** 等待晶振稳定 */while(rcu_osci_stab_wait(RCU_HXTAL) != SUCCESS){}/** 设置PREDV0 */rcu_predv0_config(RCU_PREDV0_DIV1);/** PLL设置 */rcu_pll_config(RCU_PLLSRC_HXTAL, RCU_PLL_MUL9);/** 使能PLL */rcu_osci_on(RCU_PLL_CK);/** 等待PLL稳定 */while(rcu_osci_stab_wait(RCU_HXTAL) != SUCCESS){}/** 总线时钟配置 */rcu_ahb_clock_config(RCU_AHB_CKSYS_DIV1);rcu_apb1_clock_config(RCU_APB1_CKAHB_DIV2);rcu_apb2_clock_config(RCU_APB2_CKAHB_DIV1);   /** 系统时钟源选择 */rcu_system_clock_source_config(RCU_CKSYSSRC_PLL);while(rcu_system_clock_source_get() != RCU_SCSS_PLL){}/** 更新SystemCoreClock全局变量 */SystemCoreClockUpdate();
}

GD32F103时钟配置相关推荐

  1. STM32的时钟配置随笔

    以前使用STM32都是使用库函数开发,最近心血来潮想要使用寄存器来试试手感,于是乎便在工作之余研究了一下STM32F4的时钟配置,在此将经历过程写下来作为锻炼,同时也供和我一样的新手参考,如有错误或者 ...

  2. 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)

    免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...

  3. STM32的时钟配置——时钟树解析

    此文章由于讲得较详细因此篇幅较长,请带着一点耐心去读,相信会有收获! 目录 STM32为什么要有复杂的时钟系统 详解STM32时钟系统 STM32有几个时钟源 关于时钟输出 软件配置时钟 STM32为 ...

  4. NXP(I.MX6uLL)DDR3实验——DDR3重要时间参数、时钟配置与原理图简析

    目录 DDR3 内存时间参数 传输速率 tRCD 参数 CL 参数 AL 参数 tRC 参数 tRAS 参数 I.MX6U MMDC内存控制器简介 MMDC内存控制器简介 MMDC内存控制器信号引脚 ...

  5. STM32 RCC时钟配置

    STM32 RCC时钟配置 时钟源 外部高速晶振HSE,通常是8MHz. 内部高速晶振HSI,8MHz. 外部低速晶振LSE,32.768KHz. 内部低速晶振LSI,40KHz. 时钟源选择 通常使 ...

  6. stm32时钟配置总结

    stm32时钟配置时钟源: 1,HSE(高速外部时钟)即常见的外接8M晶振方案: 2,HSI(高速内部时钟) 即8M内部振荡时钟方案: 3,LSE(低速外部时钟)即常见的32.768Khz晶振方案: ...

  7. 火牛单片机rtc时钟配置_怎么用STM32F103RTC进行时钟的配置

    #include "sys.h" #include "delay.h" #include "usart.h" #include " ...

  8. DSP28377s系统时钟配置注意事项

    DSP28377s系统时钟配置注意事项 问题一脸嫣然的向我们走来... 近日,一个兄弟在配置基于28377s芯片的主控系统时钟时,遇到点困难. 具体是这样的,原来的主控板使用的是20MHz外部晶振,为 ...

  9. 如何修改IMX6UL开发板时钟配置?

    启扬i.MX6UL开发板时钟由24Mhz与32.768Khz晶振提供,这里不具体介绍NXP公司整体的时钟规划,只从软件API接口方面去分析如何去修改一个外设的时钟. 接下来的讲解将以CAN总线的时钟为 ...

最新文章

  1. 来看看BAT在AR领域的布局,你给打几分?
  2. UnicodeEncodeError: 'ascii' codec can't encode character....
  3. 蚌埠智慧城市建设跻身全国22强 让数据替群众“跑腿”
  4. EBB-11、Linux启动流程
  5. 2021牛客暑期多校训练营8 J-Tree(思维dp+rmq)
  6. BZOJ 2957 楼房重建-线段树
  7. 浙大1002Fire Net心得
  8. 晨哥真有料丨盘点追女生的作死行为!
  9. C# combobox SelectedText值为空
  10. 如何在.NET中启用程序集绑定失败日志记录(Fusion)
  11. 关于”要执行请求的操作,WordPress需要访问您网页服务器的权限”
  12. 【电脑使用】如何快速给PDF添加书签
  13. python菜鸟教程lambda_jQuery(菜鸟教程)
  14. linux安装so共享动态库文件下载,linux下的共享库(动态库)和静态库
  15. MySQL 百分比排序
  16. 解决Windows桌面部分快捷方式图标变为空白的问题
  17. Keep your fork synced
  18. 如何用python的turtle画五角星_海龟编辑器五角星怎么画 绘制五角星就是这么简单...
  19. 科学计算库学习笔记(持续更新)
  20. windows提权思路

热门文章

  1. Selenium 爬取京东商品信息并分页保存
  2. 微信公众号和第三方的平台的对接方法
  3. c语言controlled变量的作用,Gate-controlled A-C switch
  4. 51单片机——LED点阵屏显示图形
  5. 吴佳明(普空):LVS在大规模网络环境中的应用
  6. 5行代码找出100以内所有的合数
  7. django学习笔记- oneday
  8. kubernetes资源管理详解
  9. 怎样量化评价搜索引擎的结果质量
  10. MFC静态文本框的背景色设为透明