在线时间2 小时
UID3649957
ST金币0
蝴蝶豆0
注册时间2020-6-8
新手上路
- 最后登录
- 2020-6-10
|
a4a.1 32b0c
问题描述:
硬件画的板子,采用STM32G431CBU6,外部16M晶振,PLL倍频到170MHz。
时钟初始化:
1、HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST); // HAL库默认的设置,对比手册,clock如果设置在150~170m
之间,需要设置成bootst mode
2、设置时钟源为外部HSE(16MHz)
3、等待晶振起振。可以起振
4、设置PLL
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; // 16MHz, 开发板是24MHz
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV4;//RCC_PLLM_DIV6; // 16/4=4MHz
RCC_OscInitStruct.PLL.PLLN = 85;//18;//85; // 4*85 = 340MHz
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // sys = 170MHz
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
5、等待PLL ready。pll ready
6、切换时钟源。
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_8) != HAL_OK)
{
Error_Handler();
}
切换sysclk成PLL 170MHz时钟
失败,jlink debug也断开。
不用debug模式,上电直接跑,时钟并没有设置成170mhz
请教下各位前辈和大神。
补充内容 (2020-6-8 17:36):
MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource); // 这里是切换时钟源,失败了 |
|