项目中一个是IAP程序,另一个是APP程序,两个程序都是使用STM32CubeIDE生成,当程序跳转到APP中并且执行到函数SystemClock_Config中的时候,在初始化锁相环调用HAL_RCC_OscConfig函数的时候返回HAL_ERROR或者直接卡死在里面。 为什么在IAP中可以初始化通过,但是在APP中却通不过,查阅STM32F4xx参考手册发现这么一段话: 那...
hal_rcc_oscconfig(&rcc_oscinitstruct)函数的作用: hal_rcc_oscconfig(&rcc_oscinitstruct) 函数是STM32 HAL(硬件抽象层)库中的一个函数,用于配置系统的振荡器(Oscillator)。该函数通过接受一个指向 RCC_OscInitTypeDef 结构体的指针(在此例中为 &rcc_oscinitstruct),来设置系统的时钟源、PLL(...
函数HAL_Init里面会调用时间基准初始化函数HAL_InitTick,而调用函数HAL_RCC_ClockConfig也会调用时间基准初始化函数HAL_InitTick。 如果在中断服务程序里面调用延迟函数HAL_Delay要特别注意,因为这个函数的时间基准是基于滴答定时器或者其他通用定时器实现,实现方式是滴答定时器或者其他通用定时器里面做了个变量计数。如此一...
函数HAL_Init里面会调用时间基准初始化函数HAL_InitTick,而调用函数HAL_RCC_ClockConfig也会调用时间基准初始化函数HAL_InitTick。 如果在中断服务程序里面调用延迟函数HAL_Delay要特别注意,因为这个函数的时间基准是基于滴答定时器或者其他通用定时器实现,实现方式是滴答定时器或者其他通用定时器里面做了个变量计数。如此一...
RCC_OscInitStruct.Prediv1Source = RCC_PREDIV1_SOURCE_HSE;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;RCC_OscInitStruct.PLL2.PLL2S...
只需要在主函数中通过结构体配置好相关参数,再调用HAL_RCC_OscConfig()和 HAL_RCC_ClockConfig()就完成了整体时钟树的配置。 总结分析——HAL_Delay()的实现过程 通过逐步剖析函数,有个大概宏观认知HAL库是如何配置时钟树的就已经足够,因为现在已经不需要再要求用户编写初始化配置代码,交给STM32CubeMX应用程序完成即...
16.4 stm32h7xx_hal_rcc.c 16.5 stm32h7xx_hal_cortex.c 16.6 总结 16.1 初学者重要提示 对于一些常用的函数,大家一定要熟练的掌握都实现了什么功能,比如HAL_Init,HAL_RCC_OscConfig,HAL_RCC_ClockConfig等。最好的办法是把这些函数的源码读一遍。
16.4 stm32h7xx_hal_rcc.c 16.5 stm32h7xx_hal_cortex.c 16.6 总结 16.1 初学者重要提示 对于一些常用的函数,大家一定要熟练的掌握都实现了什么功能,比如HAL_Init,HAL_RCC_OscConfig,HAL_RCC_ClockConfig等。最好的办法是把这些函数的源码读一遍。
This parameter can be a value of @ref RCC_Oscillator_Type */#ifdefined(STM32F105xC)||defined(STM32F107xC)uint32_t Prediv1Source;/*!< The Prediv1 source value. This parameter can be a value of @ref RCCEx_Prediv1_Source */#endif/* STM32F105xC || STM32F107xC */uint32_t HSEStat...
RCC_OscInitStruct.HSIState=RCC_HSI_ON;RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLMUL=RCC_PLL_MUL9;if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses...