你了解你的GD32 MCU系统主频是多少吗 ?

发布者:BlissfulDreams最新更新时间:2024-10-31 来源: elecfans关键字:GD32  MCU 手机看文章 扫描二维码
随时随地手机看文章

系统时钟是GD32 MCU的时基,可以理解为系统的心跳,片上所有的外设以及CPU最原始的时钟都来自于系统时钟,因而明确当前系统时钟是多少非常重要,只有明确了系统时钟,才能够实现准确的定时、准确的采样间隔以及准确的通信速率等。


以GD32F303为例,其系统时钟配置在system_gd32f30x.c中,如下图所示,可以通过打开或者关闭相关的宏定义进行时钟配置,GD32以及提供了一些时钟配置的函数,可以通过宏定义开关进行选择。

wKgaomW6-PyAQMpFAAVsZwjyB2g335.png?imageView2/2/w/1000


确认当前系统时钟有以下两个方法:

1、软件方式确认

使用void SystemCoreClockUpdate(void)函数进行更新当前系统时钟SystemCoreClock,该函数为根据当前RCU模块寄存器配置以及外部晶振等相关宏定义进行计算,将计算的结果赋值给SystemCoreClock变量,因而调用该函数后,SystemCoreClock的值就是当前系统时钟的数值。

wKgZomW6-QGAGBIJAAMnCBdBgBg398.png?imageView2/2/w/1000


需要注意,如果外部晶振不是8M,则需要调整HXTAL的宏定义,否则可能会造成SystemCoreClock计算出错。

wKgaomW6-QaAce9EAAG4Cu_wk3o573.png?imageView2/2/w/1000


2、时钟输出确认

另外一种最直接最准确的方式,是将系统时钟通过CKOUT引脚输出,然后通过示波器进行查看,如下图所示,CK_SYS为系统时钟,将CKOUT0SEL配置为100,就可以将系统时钟输出到CK_OUT0引脚上,这样外部接示波器就可以查看当前系统时钟了。

wKgZomW6-QqAd_ZPAABGaK8yE68462.png?imageView2/2/w/1000


另外也可以通过定时器或者通信频率来进行估算,希望大家在系统开发伊始有确认系统时钟的好习惯,避免由于系统时钟配置出错导致的隐藏问题。


关键字:GD32  MCU 引用地址:你了解你的GD32 MCU系统主频是多少吗 ?

上一篇:GD32 MCU如何将烧录口配置为GPIO使用?
下一篇:GD32对Timer定时器原理的详细讲解

推荐阅读最新更新时间:2026-03-20 13:16

你了解你的GD32 MCU系统主频是多少吗 ?
系统时钟是GD32 MCU的时基,可以理解为系统的心跳,片上所有的外设以及CPU最原始的时钟都来自于系统时钟,因而明确当前系统时钟是多少非常重要,只有明确了系统时钟,才能够实现准确的定时、准确的采样间隔以及准确的通信速率等。 以GD32F303为例,其系统时钟配置在system_gd32f30x.c中,如下图所示,可以通过打开或者关闭相关的宏定义进行时钟配置,GD32以及提供了一些时钟配置的函数,可以通过宏定义开关进行选择。 确认当前系统时钟有以下两个方法: 1、软件方式确认 使用void SystemCoreClockUpdate(void)函数进行更新当前系统时钟SystemCoreClock,该函数为根据当前RCU
[单片机]
你了解你的<font color='red'>GD32</font> <font color='red'>MCU</font><font color='red'>系统</font><font color='red'>主频</font>是多少吗 ?
STM32F207是如何将25M晶振时钟转换为120M系统主频时钟的?
01 时钟系统介绍 ▲时钟系统专业名词缩写 时钟系统关键组成部分 01 内部高速时钟(HSI) HSI时钟信号可以通过内部16MHZ的RC振荡器产生,可以直接用于系统时钟或者用于PLL输入。 HSI的RC振荡器的优势是: 在最小成本(没有外部器件)情况下提供一个时钟源。它的启动速度要比HSE晶体振荡器更快,但是即使校准频率后,它的精度仍然小于外部晶体振荡器或陶瓷谐振器。 02 外部高速时钟(HSE) 外部高速时钟信息(HSE)可以通过两个时钟源产生: ① 外部晶体/陶瓷谐振器 ② 外部用户时钟 ▲两种时钟源接入示意图 03 主锁相环时钟(PLL) STM32F2xx具有两个PLL ① 主要的PLL通过HSE或HSI提供时钟
[单片机]
STM32F207是如何将25M晶振时钟转换为120M<font color='red'>系统</font><font color='red'>主频</font>时钟的?
STM32与GD32单片机
一、相同点 都是基于Arm Cortex-M3/M4内核的32位通用微控制器,广泛应用于各种嵌入式系统和物联网领域。 二、不同点 1.1 内核和主频 GD32单片机采用的是二代的M3/M4内核;根据ARM公司的M3内核勘误表,GD32使用的内核只有一个BUG。 STM32单片机主要采用的是一代的M3/M4内核;STM32使用的内核有多个BUG1。 所以GD32的内核更稳定和可靠! 高速外部时钟(HSE)时,GD32的主频最大可以达到108MHz,STM32的主频最大只能达到72MHz; 高速内部时钟(HSI)时,GD32的主频最大可以达到108MHz,STM32的主频最大只能达到64MHz2; 主频越高,意味着单片机代码运行的速度
[单片机]
GD32 MCU 移植教程】8、从 STM32F4xx 系列移植到 GD32F4xx 系列
1.本文简介 GD32F4xx 系列 MCU 是基于 Arm® Cortex®-M4 处理器的 32 位通用微控制器,与 STM32F4xx系列 MCU 保持高度兼容。本文主要从以下三个方面进行介绍:硬件资源对比、外设及性能对比以及从 STM32F4xx 移植到 GD32F4xx 的移植步骤,旨在让开发者能够快速从 STM32F4xx移植到 GD32F4xx,缩短研发周期,加快产品开发进度。 2.GD32F4xx vs STM32F4xx 硬件资源对比 GD32F4xx 和 STM32F4xx 硬件引脚对比如表 2-1. GD32F4xx 和 STM32F4xx pin 对比所示,由该表可知,GD32F4xx 与 STM32F
[单片机]
【<font color='red'>GD32</font> <font color='red'>MCU</font> 移植教程】8、从 STM32F4xx 系列移植到 GD32F4xx 系列
GD32 MCU 移植教程】2、从 GD32F303 移植到 GD32F503
1. 前言 GD32E503 系列是 GD 推出的 Cortex_M33 系列产品,该系列资源上与 GD32F303 兼容度非常高,本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控制器移植到 GD32E503 系列微控制器。 2. 引脚兼容性 GD32F303 与 GD32E503 在相同封装下是 Pin To Pin 兼容的。但由于 GD32E503 较 GD32F303多了 SHRTIMER、SQPI 功能,所以两者引脚定义有细微差别,如下表所示: 表 1 GD32F303 系列和 GD32E503 系列引脚区别 3. 内部资源兼容性 下表给出了 GD32F303 与 GD32F503 的资源对比总览(
[单片机]
【<font color='red'>GD32</font> <font color='red'>MCU</font> 移植教程】2、从 GD32F303 移植到 GD32F503
GD32 MCU碰到IIC总线卡死怎么办?
大家在使用MCU IIC通信时,若碰到设备复位或者总线干扰等情况,可能会导致IIC总线卡死,表现上总线上SDA或者SCL其中一根线为低电平,IIC总线一直处于busy状态。此时若代码上一直等待总线空闲,则可能导致软件死机,为解决该问题,本视频提供了软件配置释放IIC总线的方法。 首先为大家介绍发生IIC总线卡死的两种情况:(1)主机在发送 START 信号后, 控制 SCL 产生 8 个时钟脉冲,然后拉低 SCL 信号为低电平,在这个时候,从设备输出应答信号,将 SDA 信号拉为低电平。如果这个时候主机异常复位, SCL 就会被释放为高电平。此时,如果从机没有复位,就会继续 I2C 的应答,将 SDA一直拉为低电平,直到 SC
[单片机]
<font color='red'>GD32</font> <font color='red'>MCU</font>碰到IIC总线卡死怎么办?
GD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?
很多朋友在调试GD32 MCU的低功耗模式时会遇到一个问题:程序中让MCU进入了Sleep、Deepsleep或者Standby模式,之后MCU就无法再下载程序了。这是因为在低功耗模式下,MCU的SW口和JTAG口是无法访问的。比如下面的程序就会导致该问题发生: 该main函数中第一步是打开PMU时钟,然后马上让MCU进入Deepsleep模式,当你想要再次下载程序时,IDE会有如下错误提示(不同IDE报错不同): 遇到这种情况怎么办呢?难道只能重新换一颗芯片了?不不不,其实有方法解决这个问题的。 方法一: GD32 MCU的启动模式根据芯片上的BOOT0和BOOT1脚是可以选择三种模式: 一般情况下,BOOT0需
[单片机]
<font color='red'>GD32</font> <font color='red'>MCU</font>进入低功耗模式导致无法再进行程序下载怎么办?
GD32 MCU启动后如何运行到main函数
GD32 MCU启动后如何运行到main函数入口?你是否也有这样的疑虑。在执行到main函数之前MCU干了哪些事情呢?下面为大家解答。 MCMCU上电后,首先会根据BOOT0和BOOT1的状态判断从主Flash/SRAM/ISP中启动,如果BOOT0为低电平,MCU将会从主Flash中启动,即主Flash中的数据会被映射到0x0000 0000地址,ARM处理器将会从0x0000 0000地址获取栈顶指针,再从0x0000 0004获取复位中断入口地址(引导代码基地址),如下图所示,我们随便打开一个bin文件,前4个字节为MSP堆栈指针,之后四个字节为复位中断入口地址,之后为中断向量表。 MCU找到堆栈指针和复位中断入口
[单片机]
<font color='red'>GD32</font> <font color='red'>MCU</font>启动后如何运行到main函数
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved