GD32F103时钟配置
用过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时钟配置相关推荐
- STM32的时钟配置随笔
以前使用STM32都是使用库函数开发,最近心血来潮想要使用寄存器来试试手感,于是乎便在工作之余研究了一下STM32F4的时钟配置,在此将经历过程写下来作为锻炼,同时也供和我一样的新手参考,如有错误或者 ...
- 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)
免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...
- STM32的时钟配置——时钟树解析
此文章由于讲得较详细因此篇幅较长,请带着一点耐心去读,相信会有收获! 目录 STM32为什么要有复杂的时钟系统 详解STM32时钟系统 STM32有几个时钟源 关于时钟输出 软件配置时钟 STM32为 ...
- NXP(I.MX6uLL)DDR3实验——DDR3重要时间参数、时钟配置与原理图简析
目录 DDR3 内存时间参数 传输速率 tRCD 参数 CL 参数 AL 参数 tRC 参数 tRAS 参数 I.MX6U MMDC内存控制器简介 MMDC内存控制器简介 MMDC内存控制器信号引脚 ...
- STM32 RCC时钟配置
STM32 RCC时钟配置 时钟源 外部高速晶振HSE,通常是8MHz. 内部高速晶振HSI,8MHz. 外部低速晶振LSE,32.768KHz. 内部低速晶振LSI,40KHz. 时钟源选择 通常使 ...
- stm32时钟配置总结
stm32时钟配置时钟源: 1,HSE(高速外部时钟)即常见的外接8M晶振方案: 2,HSI(高速内部时钟) 即8M内部振荡时钟方案: 3,LSE(低速外部时钟)即常见的32.768Khz晶振方案: ...
- 火牛单片机rtc时钟配置_怎么用STM32F103RTC进行时钟的配置
#include "sys.h" #include "delay.h" #include "usart.h" #include " ...
- DSP28377s系统时钟配置注意事项
DSP28377s系统时钟配置注意事项 问题一脸嫣然的向我们走来... 近日,一个兄弟在配置基于28377s芯片的主控系统时钟时,遇到点困难. 具体是这样的,原来的主控板使用的是20MHz外部晶振,为 ...
- 如何修改IMX6UL开发板时钟配置?
启扬i.MX6UL开发板时钟由24Mhz与32.768Khz晶振提供,这里不具体介绍NXP公司整体的时钟规划,只从软件API接口方面去分析如何去修改一个外设的时钟. 接下来的讲解将以CAN总线的时钟为 ...
最新文章
- 来看看BAT在AR领域的布局,你给打几分?
- UnicodeEncodeError: 'ascii' codec can't encode character....
- 蚌埠智慧城市建设跻身全国22强 让数据替群众“跑腿”
- EBB-11、Linux启动流程
- 2021牛客暑期多校训练营8 J-Tree(思维dp+rmq)
- BZOJ 2957 楼房重建-线段树
- 浙大1002Fire Net心得
- 晨哥真有料丨盘点追女生的作死行为!
- C# combobox SelectedText值为空
- 如何在.NET中启用程序集绑定失败日志记录(Fusion)
- 关于”要执行请求的操作,WordPress需要访问您网页服务器的权限”
- 【电脑使用】如何快速给PDF添加书签
- python菜鸟教程lambda_jQuery(菜鸟教程)
- linux安装so共享动态库文件下载,linux下的共享库(动态库)和静态库
- MySQL 百分比排序
- 解决Windows桌面部分快捷方式图标变为空白的问题
- Keep your fork synced
- 如何用python的turtle画五角星_海龟编辑器五角星怎么画 绘制五角星就是这么简单...
- 科学计算库学习笔记(持续更新)
- windows提权思路