stm32cubemx配置rtc时钟使用高速外部时钟
时间: 2025-04-24 21:14:02 浏览: 51
### STM32CubeMX 中配置 RTC 使用 HSE(高速外部时钟)
在 STM32 微控制器中,RTC 模块可以由不同的时钟源驱动,其中包括 HSE 分频时钟。当选择 HSE 作为 RTC 的时钟源时,需要注意的是,在主电源 VDD 掉电的情况下,HSE 也会停止工作,这会影响 RTC 的正常运行[^3]。
为了在 STM32CubeMX 中配置 RTC 使用 HSE 作为时钟源:
#### 配置步骤
1. **启动 STM32CubeMX 并加载项目**
打开 STM32CubeMX 软件并创建或打开现有的 STM32 工程文件。
2. **设置系统时钟树**
进入 `Clock Configuration` 页面调整系统的时钟树结构,确保 HSE 外部高速时钟已启用,并且其参数已经正确设定。
3. **配置 RTC 设置**
切换至 `Peripherals` 标签页找到 RTC 组件,点击进入详细配置界面。在此处可以选择 RTC 的时钟源选项为 `HSE Divided by`,接着指定具体的分频系数使得最终输出频率适合 RTC 使用需求。
4. **代码生成与编译**
完成上述配置之后保存工程并让 STM32CubeMX 自动生成初始化代码片段。随后可以在 IDE 中继续开发应用程序逻辑部分。
```c
// 初始化函数自动生成示例
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/* Initializes the CPU, AHB and APB busses clocks */
__HAL_RCC_PWR_CLK_ENABLE();
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_HSEDIV; // Selecting HSE divided as RTC clock source
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK){
Error_Handler(); /* User can add his own error handler here */
}
```
此段代码展示了如何通过修改外设时钟初始化结构体来选定 HSE 分频后的信号作为 RTC 输入时钟源[^4]。
阅读全文
相关推荐

















