各位大神 为何我使用cubemx配置的内部HSI 程序跑不去起来,而使用MSI可以跑起来
{
if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != RESET) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF))
{
return HAL_ERROR;
}
此时时钟源依然是MSI,因此会进入if语句,并且RCC_FLAG_MSIRDY也是置位的,两个条件与的if语句也满足,因此就return ERROR了。
修改时只需要在SystemClock_Config()函数中加上对RCC_OscInitStruct.MSIState的初始化就可以了,如下:
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.MSIState = RCC_MSI_ON;