GD32时钟设置与获取

本文介绍了在GD32F407IG开发过程中,如何修改和获取时钟频率。通过修改'system_gd32f4xx.c'文件的宏定义设置时钟源,选择25M外部晶振实现168MHz主频。时钟频率的读取功能位于'gd32f4xx_rcu.c'文件中,提供了获取不同总线频率的函数。测试代码展示了如何利用这些函数来检查各总线时钟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改主频

GD32开发出来了自己的库、虽然和STM的标准库差不多但是也有一些差异。
  使用GD32F407IG、今天在做测试的时候怀疑是时钟有问题、于是就想修改一下时钟、然后读取出各个总线的时钟、看看倍频是否成功。
  在找了一圈之后终于找到了:
  找到了在“system_gd32f4xx.c”文件的第43行到54行之间通过宏定义来定义选择哪个时钟作为时钟源、和主频多少M;

/* select a system clock by uncommenting the following line */
//#define __SYSTEM_CLOCK_IRC16M                   (uint32_t)(__IRC16M)
//#define __SYSTEM_CLOCK_HXTAL                    (uint32_t)(__HXTAL)
//#define __SYSTEM_CLOCK_120M_PLL_IRC16M          (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_120M_PLL_8M_HXTAL        (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_120M_PLL_25M_HXTAL       (uint32_t)(120000000)
//#define __SYSTEM_CLOCK_168M_PLL_IRC16M          (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_168M_PLL_8M_HXTAL        (uint32_t)(168000000)
#define __SYSTEM_CLOCK_168M_PLL_25M_HXTAL       (uint32_t)(168000000)
//#define __SYSTEM_CLOCK_200M_PLL_IRC16M          (uint32_t)(200000000)
//#define __SYSTEM_CLOCK_200M_PLL_8M_HXTAL        (uint32_t)(200000000)
//#define __SYSTEM_CLOCK_200M_PLL_25M_HXTAL       (uint32_t)(200000000)

我选择的是外部25M的晶振主频168MHz。

获取主频

获取主频的函数在“gd32f4xx_rcu.c”中。
  源代码如下:通过参数可以获取不同总线的频率。

/*!
    \brief      get the system clock, bus and peripheral clock frequency
    \param[in]  clock: the clock frequency which to get
                only one parameter can be selected which is shown as below:
      \arg        CK_SYS: system clock frequency
      \arg        CK_AHB: AHB clock frequency
      \arg        CK_APB1: APB1 clock frequency
      \arg        CK_APB2: APB2 clock frequency
    \param[out] none
    \retval     clock frequency of system, AHB, APB1, APB2
*/
uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock){
...
...
...

}

测试代码如下:通过不同的参数获取不同的主频。

/************  测试代码   *****************/			
		{
		uint32_t fre=0;
		fre = rcu_clock_freq_get(CK_SYS);
		}

不积跬步无以至千里-.-;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值