stm32f030 hsi 32M hal代码
时间: 2024-08-14 11:06:18 浏览: 53
STM32F030系列微控制器使用HSI (高速内部振荡器) 作为32MHz的时钟源时,HAL库提供了一套预定义的函数来配置和管理这个时钟。以下是使用HAL库设置HSI作为系统时钟的基本步骤:
```c
#include "stm32f0xx_hal.h"
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
// 初始化振荡器
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON; // 开启HSI
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // 如果不需要PLL,设为None
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
// 处理错误
}
// 选择HSI作为系统时钟源
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
{
// 处理错误
}
}
```
在这个例子中,`SystemClock_Config()` 函数首先初始化 `RCC_OscInitTypeDef` 结构,然后使用 `HAL_RCC_OscConfig()` 函数配置HSI。接着,通过 `RCC_ClkInitTypeDef` 来设置时钟类型和来源,并通过 `HAL_RCC_ClockConfig()` 将系统时钟设置为HSI。
阅读全文