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)
华为nova系列已经在中档位市场站稳了脚跟获得了年轻消费者的认为
低电阻连接测试仪电路图分享
当人脸识别走进了公众视野时, Facebook 也不忘凑个热闹
惠普战86商用台式机评测 完全符合商务主机的多种特性
如何选择低功耗蓝牙SoC
更改晶振后如何修改配置?
一种针对导电纱线的寄生电容进行建模和测量的方法
AMD RX6000光追揭秘:性能暴涨13.8倍
网络电缆测试仪工作原理_网络电缆测试仪怎么用
三星申请全屏指纹识别技术专利
民用无人机的十大用途详解
华为发布盘古数字人模型,或可达到“人人实现‘数字人’”
接触式图像传感器的信号读取与补偿技术
基于Mobile SDK V4版固件开发大疆无人机手机端遥控器(2)
奥迪的智能电动140亿欧元金元攻略
企业存储磁盘阵列技术分享(存储主要协议对比)
时序脉冲产生和分频电路
液位传感器工作原理和特点
腾讯郭凯天:科技向善,数字社会的新路标
简单介绍GlobalFoundrieS生产eMRAM的解决方案