hal库怎么实现外部晶振有问题切换内部晶振
时间: 2024-01-12 22:04:10 浏览: 21
HAL库是针对STM32系列芯片的软件库,包含了许多常用的功能函数。如果外部晶振出现问题需要切换到内部晶振,可以通过以下步骤实现:
1. 在代码中添加头文件#include "stm32f1xx_hal_rcc.h",该头文件包含了RCC外设相关的函数和宏定义。
2. 调用函数HAL_RCC_DeInit()将外设时钟寄存器恢复到默认值,这样可以确保外设时钟处于关闭状态。
3. 调用函数HAL_RCC_OscConfig()配置内部晶振,参数设置为RCC_OSCILLATORTYPE_HSI,这样可以使芯片切换到内部高速时钟(HSI)。
4. 调用函数HAL_RCC_ClockConfig()将系统时钟设置为内部高速时钟(HSI)。
代码示例:
```
// 关闭外部晶振,切换到内部晶振
HAL_RCC_DeInit();
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
HAL_RCC_ClockConfig(RCC_SYSCLKSOURCE_HSI);
```
需要注意的是,如果需要再次切换回外部晶振,需要重新配置外设时钟寄存器,并将系统时钟设置为外部高速时钟(HSE)。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)