RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler();
时间: 2024-04-28 14:26:49 浏览: 188
RCC.rar_RCC_rcc cncomm_rcc saber
这段代码是STM32的初始化代码,用于初始化芯片的时钟系统。首先,它定义了两个结构体变量RCC_OscInitStruct和RCC_ClkInitStruct,分别用于配置芯片的振荡器和时钟。
在RCC_OscInitStruct结构体中,它指定使用HSI振荡器并将其打开,使用默认的HSI校准值,并打开PLL。PLL的输入时钟源为HSI/2,乘数为16。
在RCC_ClkInitStruct结构体中,它指定时钟类型为HCLK、SYSCLK、PCLK1和PCLK2,并将SYSCLK源设置为PLLCLK。AHB时钟分频器设置为1,APB1时钟分频器设置为2,APB2时钟分频器设置为1。
最后,如果调用HAL_RCC_OscConfig和HAL_RCC_ClockConfig函数返回错误,则调用Error_Handler函数进行错误处理。
阅读全文