问题描述: 硬件画的板子,采用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); // 这里是切换时钟源,失败了 |
【2020·11.19签到】今日话题:STM32G4的ADC1,ADC2,ADC3,ADC4可以同...
【2020·07.27签到】今日话题:STM32G431无法仿真
【2020·06.11签到】今日话题:STM32G473程序运行于Flash和Ram速...
【2020·06.12签到】今日话题:STM32G4的运放带宽为能有多少Mhz?
【2020·04·23签到】今日话题:STM32G4芯片怎么使用三角函数
【2019·10·14签到】今日话题:STM32G4 进行usb pd开发接线问题?
【2019·6·14签到】STM32G4登场,各路英雄好汉看过来啊!