GD32E230 时钟
时间: 2023-08-30 11:09:11 浏览: 247
GD32E230 是一款基于ARM Cortex-M0内核的微控制器,其时钟系统包括内部高速RC振荡器、内部低速RC振荡器、内部高速晶体振荡器、内部低速晶体振荡器、外部晶体振荡器等多种时钟源,可以通过时钟树和时钟分频器进行配置和控制。
具体来说,GD32E230的时钟体系包括以下三种时钟:
1.系统时钟(SYSCLK):主要用于控制CPU、总线和外设的时钟,可以通过时钟树和PLL倍频器进行配置。SYSCLK的最大频率为48MHz。
2.时钟树时钟:由SYSCLK经过时钟树分频器分频得到,用于控制外设的时钟。
3.外设时钟:由时钟树时钟分频得到,可通过控制寄存器进行配置,用于控制外设的时钟。
需要注意的是,GD32E230的时钟系统非常灵活,可以根据具体应用的需求进行配置,但也需要根据芯片手册的要求进行正确的配置和控制。
相关问题
GD32e230配置外部时钟
### 配置GD32E230外部时钟设置
对于GD32E230系列微控制器,配置外部时钟源(即高精度外部晶振HSE)是一个重要的初始化过程。这涉及到几个关键步骤来确保系统能够稳定运行并利用外部晶体提供的更精确的时间基准。
#### 启用外部高速时钟(HSE)
为了启用外部高速时钟,在程序启动阶段需要执行特定的寄存器操作以激活该功能。下面展示了如何通过修改RCC(Reset and Clock Control)寄存器中的相应位来完成这一任务:
```c
void HSE_Configuration(void){
/* Enable Power Control clock */
__HAL_RCC_PWR_CLK_ENABLE();
/* The voltage scaling allows optimizing power consumption when the device is
clocked below the maximum system frequency, to update the PWR_CR register
on this new value and change the Flash Latency accordingly */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/* Enable HSE Oscillator (External 8 MHz crystal) */
RCC_OscInitTypeDef osc_init;
osc_init.OscillatorType = RCC_OSCILLATORTYPE_HSE;
osc_init.HSEState = RCC_HSE_ON; // Turn ON external high-speed oscillator
HAL_RCC_OscConfig(&osc_init);
}
```
这段代码首先使能电源控制模块以便调整电压等级适应不同的频率需求;接着定义了一个`RCC_OscInitTypeDef`结构体变量用于指定要使用的振荡器类型以及其状态——这里选择了开启外部高频振荡器[^1]。
#### 更新系统时钟配置
一旦成功启用了HSE之后,则需进一步更新系统的主PLL(phase-locked loop),使其基于新选定时基工作。此部分通常也涉及到了对Flash访问延迟(`FLASH_LATENCY`)参数适当设定,从而保证最佳性能表现:
```c
/* Select PLL as System Clock Source and configure the HCLK, PCLK1 clocks dividers */
static void SystemClock_Config(void)
{
RCC_ClkInitTypeDef clk_init;
/* Initializes the CPU, AHB and APB buses clocks */
clk_init.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1;
clk_init.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
clk_init.AHBCLKDivider = RCC_SYSCLK_DIV1;
clk_init.APB1CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&clk_init, FLASH_LATENCY_1);
/* Configure the main internal regulator output voltage */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
}
int main(){
...
HSE_Configuration(); // Initialize External High Speed Crystal/Oscillator (HSE).
SystemClock_Config(); // Setup System Clock based upon configured HSE.
...
}
```
上述代码片段说明了怎样选择PLL作为系统时钟源,并设置了AHB总线(AHBCLK),APB1外设接口(APB1CLK)与时钟分配因子。最后调用`__HAL_PWR_VOLTAGESCALING_CONFIG()`函数优化功耗管理策略。
gd32e230_gujiankuyonghuzhinan_v1.0,gd32e230xx_datasheet_rev1.3
gd32e230_gujiankuyonghuzhinan_v1.0是关于GD32E230系列芯片的用户指南,提供了关于该系列芯片的详细信息和使用说明。用户指南中包括了芯片的特性介绍、引脚功能、时钟和复位控制、外设功能、以及编程和调试等方面的内容,可以帮助开发人员更好地了解和使用GD32E230系列芯片。
而gd32e230xx_datasheet_rev1.3则是GD32E230系列芯片的数据手册,提供了关于该系列芯片的详细技术参数和规格说明。数据手册中包括了芯片的绝对最大额定值、电气特性、时序参数、引脚定义和功能描述、以及封装信息等方面的内容,可以帮助开发人员在设计和使用中更好地了解和应用GD32E230系列芯片。
这两个文档对于了解和应用GD32E230系列芯片都是非常有价值的参考资料,能够帮助开发人员更好地进行软硬件设计、编程开发以及系统集成等工作。同时,通过对这两个文档的学习和理解,开发人员可以更高效地进行系统开发和调试工作,从而提高产品开发的效率和质量。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)