项目中一个是IAP程序,另一个是APP程序,两个程序都是使用STM32CubeIDE生成,当程序跳转到APP中并且执行到函数SystemClock_Config中的时候,在初始化锁相环调用HAL_RCC_OscConfig函数的时候返回HAL_ERROR或者直接卡死在里面。 为什么在IAP中可以初始化通过,但是在APP中却通不过,查阅STM32F4xx参考手册发现这么一段话: 那...
对于步骤 2,使用 HAL 来配置时钟源相关参数,我们调用的函数为HAL_RCC_OscConfig(),该函数在 HAL 库关键头文件stm32l4xx_hal_rcc.h 中声明,在文件 stm32l4xx_hal_rcc.c 中定义。首先我们来看看该函数声明: HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 该函数只有一个入口参数...
同理,(RCC->MC_APB1ENCLRR = RCC_MC_APB1ENCLRR_WWDG1EN)表示关闭WWDG的时钟,不过因为WWDG特殊,系统运行的时候是不能将WWDG时钟关闭的,所以寄存器RCC_MC_APB1ENCLRR并没有针对WWDG的操作位,所以调用__HAL_RCC_WWDG1_CLK_DISABLE()这个宏是没什么实际意义的,不过对于其它一般的外设,例如I2C3、USART2、UART...
配置时钟源相关参数:调用函数HAL_RCC_OscConfig()。 配置系统时钟源以及AHB,APB1和APB2的分频系数:调用函数HAL_RCC_ClockConfig()。 HAL_StatusTypeDefHAL_RCC_OscConfig(RCC_OscInitTypeDef*RCC_OscInitStruct);HAL_StatusTypeDefHAL_RCC_ClockConfig(RCC_ClkInitTypeDef*RCC_ClkInitStruct,uint32_tFLatency); HAL_RCC...
HAL 库(支持图形化初始配置) //1.配置时钟 //宏定义方式 __HAL_RCC_GPIOA_CLK_ENABLE(); //2.配置引脚 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStruct.Pin = GPIO_PIN_1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; ...
9.3 RCC的具体代码分析 接下来看看具体代码吧,还是先看主函数。 int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration---*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. ...
HAL数据结构:每一个HAL驱动都遵循以下数据结构:外设句柄结构Peripheral handle structures 初始化和配置...
这些函数通常以HAL_RCC_xxx_Config()的形式命名,其中xxx表示相应的时钟源或功能。例如,HAL_RCC_...
16.4 stm32h7xx_hal_rcc.c 16.5 stm32h7xx_hal_cortex.c 16.6 总结 16.1 初学者重要提示 对于一些常用的函数,大家一定要熟练的掌握都实现了什么功能,比如HAL_Init,HAL_RCC_OscConfig,HAL_RCC_ClockConfig等。最好的办法是把这些函数的源码读一遍。
__HAL_RCC_PWR_CLK_ENABLE();//使能电源时钟PWRHAL_PWR_EnableBkUpAccess();//取消备份区域写保护RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_LSE;//LSE配置RCC_OscInitStruct.PLL.PLLState=RCC_PLL_NONE;RCC_OscInitStruct.LSEState=RCC_LSE_ON;//RTC使用LSEHAL_RCC_OscConfig(&RCC_OscInitStruct);...