GD32官方提供的固件库中使用的晶振配置一般为8M或25M,如果读者使用其他频率的晶振如何修改配置呢?本文为大家讲解如何修改。
以GD32F303为例,官方固件库中的晶振及时钟配置代码如下,改配置代码为使用外部8M晶振倍频到120M时钟。


在此我们举例,若外部晶振使用16M该如何配置,主要修改以下两点:
修改HXTAL_VALUE为16M,如下红色底纹部分。
#if !defined HXTAL_VALUE #ifdef GD32F30X_CL #define HXTAL_VALUE ((uint32_t)25000000) /*!< value of the external oscillator in Hz */ #else #define HXTAL_VALUE ((uint32_t)16000000) /* !< from 4M to 32M *!< value of the external oscillator in Hz*/ #endif /* HXTAL_VALUE */ #endif /* high speed crystal oscillator value */
修改时钟倍频到120M.如下红色底纹部分,配置15倍频,计算公式为16M/2*15=120M.
/* select HXTAL/2 as clock source */ RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0); RCU_CFG0 |= (RCU_PLLSRC_HXTAL_IRC48M | RCU_CFG0_PREDV0); /* CK_PLL = (CK_HXTAL/2) * 15 = 120 MHz */ RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4 | RCU_CFG0_PLLMF_5); RCU_CFG0 |= RCU_PLL_MUL15;
PS:GD固件库中修改使用内部时钟非常方便,只要打开内部时钟的宏定义就可以啦。
/* select a system clock by uncommenting the following line */ /* use IRC8M */ //#define __SYSTEM_CLOCK_IRC8M (uint32_t)(__IRC8M) //#define __SYSTEM_CLOCK_48M_PLL_IRC8M (uint32_t)(48000000) //#define __SYSTEM_CLOCK_72M_PLL_IRC8M (uint32_t)(72000000) //#define __SYSTEM_CLOCK_108M_PLL_IRC8M (uint32_t)(108000000) //#define __SYSTEM_CLOCK_120M_PLL_IRC8M (uint32_t)(120000000)
关键字:晶振 GD32
引用地址:
更改晶振后如何修改配置?
推荐阅读最新更新时间:2026-03-24 17:00
S3C2440 热拔插驱动 修改mdev配置支持U盘自动挂载(三十三)
1、当我们每次插入U盘后,都会自动创建U盘的设备节点/dev/sda%d 这是因为里面调用了device_create()实现的,busybox的mdev机制就会根据主次设备号等信息,在/dev目录下创建设备节点,如下图所示: 而想使用上面的sda1设备节点,读写数据时,还需要使用mount /dev/sda1 /mnt来挂在U盘才行,会显得很麻烦,如下图所示: 2、其实,可以在/etc/mdev.conf文件里加入一行语句就能实现自动装载u盘,也可以在里面干其他与设备节点相关的事 2.1 而/etc/mdev.conf又是什么? 它是属于mdev的一个配置文件,而mdev之前就讲过了,它主要的功能是管理/de
[单片机]
STM32、GD32等单片机,上电后不运行,复位后才能运行,解决方法
问题描述:仿真器下载程序后,可运行;拔掉仿真器,断电重新上电后,处理器不运行,手动复位后产品能正常运行 出现上面描述的问题,目前我遇到的有两种情况: ①外设设备初始化未完成:可以注释排查外设设备,在初始化的地方添加一段延时,等待产品初始化完成。 ②晶振起振时间长:(上示波器查看晶振起振时间)在时钟初始化启动外部时钟之前添加一段延时等待。 以上是我诸多工程中遇到的情况及解决的方法,如有其他情况 ,欢迎大家不吝赐教。
[单片机]
VScode开发STM32/GD32单片机-环境搭建
1、软件下载 1.1、安装 VSCode 1.2、下载安装 VisualGDB 1.3、下载安装 mingwin64 1.4、下载安装 OpenOCD 1.5、下载 GNU Arm Embedded Toolchain 2、软件安装 2.1、安装完成 VisualGDB 找到安装目录如下位置 将破解软件放在里边 管理员方式运行弹出如下两个窗口 2.2、安装 mingwin64 安装完成之后将路径添加到环境变量中 找到安装目录下得bin文件夹,将文件路径添加到系统环境变量中 设置环境变量 上 2.3安装 OpenOCD 软件,直接将bi
[单片机]
GD32 MCU高效控制方案,多维赋能家电全场景变频驱动
当前,国内家电行业正处于智能化与能效升级的关键转型期,随着新国标能效标准的深化落地与全屋智能互联需求的爆发,传统家电控制技术正面临从单一功能驱动向全场景智能协同的迭代挑战。在这一技术跃迁进程中, MCU作为变频驱动系统的核心控制枢纽,正以其算力升级与算法创新能力 ,成为破解家电能效优化、精准控制与场景联动等技术痛点的核心引擎。 从变频空调的精准控温到智能家电的自主决策,MCU通过集成化硬件设计与智能化控制算法的深度融合,正推动家电行业从硬件功能竞争向系统化竞争演进,成为驱动国内家电技术升级与全球竞争力提升的底层技术支柱。 从功能控制到智能互联 起源于20世纪80年代空调领域的家电变频驱动技术,正以功率半导体与控制算法的
[家用电子]
【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列
1.前言 GD32E230 系列是 GD 的 Cortex_M23 系列产品,GD32F330 系列是 GD 的 Cortex_M4 系列产品,这两个系列的兼容度非常高。客户会有从 GD32E230 系列移植到 GD32F330 系列的需求,本文档专门针对既有的 GD32E230 代码如何移植到 GD32F330 做一个详细的介绍; 2.硬件差异 GD32E230 系列的封装类型有:TSSOP20、LGA20、QFN28、QFN32、LQFP32、LQFP48,GD32F330系列的封装类型有:TSSOP20、QFN28、QFN32、LQFP48、LQFP64,两个系列相同封装的芯片引脚是兼容的。 注意: 1. TSSOP20
[单片机]
GD32开发实战指南(基础篇) 第18章 CRC校验
开发环境: MDK:Keil 5.30 开发板:GD32F207I-EVAL MCU:GD32F207IK 1 CRC的校验原理 __循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。__在其他的应用中, CRC技术主要应用于核实数据传输或者数据存储的正确性和完整性。标准EN/IEC 60335-1即提供了一种核实闪存存储器完整性的方法。 CRC计算单元可以在程序运行时计算出软件的标识,之后与在连接时生成的参考标识比较,然后存放在指定的存储器空间。那么首先来看看CRC校验原理。 1.1基本原理 CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构
[单片机]
分析采用GD32 MCU设计LCD显示屏背光驱动方案的实用性和应用
HDR(High-Dynamic Range)即高动态对比度的功能,已广泛应用于LCD电视,显示器和汽车显示屏。随着人们对画面对比度的要求越来越高,以及LED灯的尺寸越来越小,LCD背光驱动的分区也越来越多。背光的亮度配合画面的明暗以达到HDR的效果我们称之为Local dimming(区域调光)。 如果说广大消费者对高画质大屏LCD电视的视觉体验要求越来越高是必然的趋势,电竞玩家对显示器的流畅画质则是一种刚需,而汽车仪表盘在强光下对比度不高更是当下汽车显示屏面临的短板,做好显示屏的HDR即刻给用户带来明显的体验提升。 LCD显示和OLED显示当下是势均力敌的两大阵营,各自主张企图引领未来,随着Mini LED灯的流行和普及,
[单片机]
GD32开发实战指南(基础篇) 第1章 开发环境搭建
开发环境: MDK:Keil 5.30 开发板:GD32F207I-EVAL MCU:GD32F207IK 1 GD32F207I-EVAL开发板简介 笔者使用的开发板是兆易创新设计的GD32F207I-EVAL开发板。 GD32F207I-EVAL开发板使用 GD32F207IK作为主控制器,主频120MHz、集成3MB Flash、256KB SRAM、通用定时器10、Adv. TM2、Basic TM2、系统时钟1、看门狗2、RTC1、USART4、UART4、I2C3、SPI3、I2S1、SDIO1、CAN2.0B2、USB2.0 OTG FS1、以太网MAC1、TFT-LCD16、数字摄像头接口1、Crypro/
[单片机]