(prescaler+1)*(period+1)*2/CK_TIMER,其中CK_TIMER根据APB1和APB2的分频系数决定 二、GD32F4xx系列 实际上GD32F4xx系列的周期时间计算公式和GD32F30x的相同,不同的点在于CK_TIMER的计算公式,照例看下GD32F4xx的时钟树:可以看到CK_TIMER可以是APB时钟乘以1、乘以2或乘以4,那具体是乘以几呢?这个...
(prescaler+1)*(period+1)*2/CK_TIMER,其中CK_TIMER根据APB1和APB2的分频系数决定 二、GD32F4xx系列 实际上GD32F4xx系列的周期时间计算公式和GD32F30x的相同,不同的点在于CK_TIMER的计算公式,照例看下GD32F4xx的时钟树: 可以看到CK_TIMER可以是APB时钟乘以1、乘以2或乘以4,那具体是乘以几呢?这个是根据...
GD32系列MCU在启动后首先会执行Reset Handler,紧接着就会执行SystemInit()函数,而时钟的初始化,就是在这个函数中进行,其主要的功能是配置系统时钟CK_SYS(即主频),AHB、APB1以及APB2时钟。SystemInit()函数由GD32官方库提供,不同系列的MCU有一些差别,但实现方式基本相同:首先将RCU关于CK_SYS,AHB、APB1以及...
AHB = SYSCLK; APB1 = AHB/4= 200M/4 = 50MHz; CK_TIMERx = 2 * CK_APB1 = 100MHz 若对时钟配置寄存器 1 进行时钟配置的话, rcu_timer_clock_prescaler_config(RCU_TIMER_PSC_MUL4); 则: CK_TIMERx = 4 * CK_APB1 = 200MHz
#include "gd32xxxx.h" // 包含GD32的头文件,具体文件名可能因型号而异 int main(void) { uint32_t sys_clk_freq, ahb_clk_freq, apb1_clk_freq, apb2_clk_freq; // 获取系统时钟频率 sys_clk_freq = rcu_clock_freq_get(CK_SYS); // 获取AHB时钟频率 ahb_clk_freq = rcu_clock_freq_get(...
x0系列RTC工作在备份域,可在低功耗模式下保持工作,通过APB总线可对RTC寄存器进行读取和配置。如下图x0系列RTC结构框图所示,RTC时钟源可配置通过数字平滑校准或直接输入到7位异步预分频器输出ck_apre时钟用于RTC_SS亚秒寄存器自减计数,ck_apre时钟又经过15位同步预分频器后输出1HZ的ck_spre时钟提供日历寄存器使用...
0:计数器禁能;1:计数器使能}main.c/*CK_SYS is 120000000CK_AHB is 120000000CK_APB1 is ...
由此可以算出,在GD32F103RC芯片中如果配置系统时钟CK_SYS=108MHz,则CK_APB1=54MHz,APB1 prescale ...
AHB、APB1、APB2、PLL配置 void rcu_ahb_clock_config(uint32_t ck_ahb) /*! \brief configure the AHB clock prescaler selection \param[in] ck_ahb: AHB clock prescaler selection only one parameter can be selected which is shown as below: ...
1 GD32的启动模式 首先要讲一下GD32的启动模式,因为启动模式决定了向量表的位置,GD32有三种启动模式: 1)主闪存存储器(Main Flash)启动:从GD32内置的Flash启动(0x0800 0000-0x0807 FFFF),一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。以0x08000000 对应的内存为例,则该...