使用HSI或HSE的PLL功能来提高时钟速度。PLLRDY标志位始终无法置位。进入硬错误状态并需要复位。 开发环境:STM32CubeIDE 微控制器:STM32F070CB 已尝试的解决方法: 查到资料提到必须在开启PLL前更改Flash延迟。我已尝试手动切换至模式0和模式1 使用HSI和HSE作为PLL源。通过示波器确认HSE信号正常,但两者均无效 擦除芯片并重新烧录全新的PLL代码 在时钟配置选项卡中使用多种不同的PLL倍频器配置等组合 直接使用参考手册第732页提供的示例代码(针对该型号微控制器) 在两块不同的微控制器上测试 在评估板上测试时PLL可正常工作(最高可达48MHz) 每次执行__HAL_RCC_PLL_ENABLE()都会导致程序崩溃
以下是我的配置代码: void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Initializes the CPU, AHB and APB busses clocks */ 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; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } /** Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { Error_Handler(); } HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_SYSCLK, RCC_MCODIV_1);}
|