软复位函数在HAL库中的名称为HAL_RCC_DeInit(),它是一个全局函数,可以在任何地方调用。该函数的实现中会对MCU的时钟、外设、NVIC等进行初始化配置,使MCU恢复到出厂默认状态。 在使用软复位函数前,需要确保所有正在运行的操作已经停止,且当前MCU的状态已经妥善记录,以免因软复位导致数据丢失或程序异常。 软复位函数的...
函数HAL_RCC_DeInit的部分代码如下,因为代码很多,我们省略掉了部分代码。 1 HAL_StatusTypeDef HAL_RCC_DeInit(void) 2 { 3 uint32_t tickstart; 4 5 /* 将HSION位置1,使能HSI振荡器 */ 6 SET_BIT(RCC->OCENSETR, RCC_OCENSETR_HSION); 7 8 /* 获取全局变量uwTick当前计算值 */ 9 tickstart = ...
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_D1PCLK1 | RCC_CLOCKTYPE_PCLK1 | \ RCC_CLOCKTYPE_PCLK2 | RCC_CLOCKTYPE_D3PCLK1); RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1; ...
HAL_StatusTypeDef HAL_DeInit(void) { /* 复位所有外设 */__set_PRIMASK __HAL_RCC_AHB3_FORCE_RESET(); __HAL_RCC_AHB3_RELEASE_RESET(); /* 省略未写 */ __HAL_RCC_APB4_FORCE_RESET(); __HAL_RCC_APB4_RELEASE_RESET(); /* 复位底层硬件初始化 */ HAL_MspDeInit(); /* 返回值 */ r...
RCC_ITConfig RCC_ClearITPendingBit RCC_GetITStatus 五、系统时钟程序实现 因此根据上面的总结,RCC的初始化流程为: 使用HSE时钟,程序设置时钟参数流程: (1)将RCC寄存器重新设置为默认值 RCC_DeInit; (2)打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON); ...
16.3.2 函数HAL_DeInit 函数原型: 代码语言:javascript 复制 HAL_StatusTypeDefHAL_DeInit(void){/* 复位所有外设 */__set_PRIMASK__HAL_RCC_AHB3_FORCE_RESET();__HAL_RCC_AHB3_RELEASE_RESET();/* 省略未写 */__HAL_RCC_APB4_FORCE_RESET();__HAL_RCC_APB4_RELEASE_RESET();/* 复位底层硬件初始...
16.3.2 函数HAL_DeInit 函数原型: HAL_StatusTypeDef HAL_DeInit(void) {/*复位所有外设*/__set_PRIMASK __HAL_RCC_AHB3_FORCE_RESET(); __HAL_RCC_AHB3_RELEASE_RESET();/*省略未写*/__HAL_RCC_APB4_FORCE_RESET(); __HAL_RCC_APB4_RELEASE_RESET();/*复位底层硬件初始化*/HAL_MspDeInit();/...
提供额外的RCC_HAL驱动程序功能: HAL_RCC_DeInit()时钟去启动功能,将时钟配置返回到复位状态; 获取时钟功能,并允许检索各种时钟配置(system clock、HCLK、PCLKn); MCO和CSS配置功能; 在stm32f0xx_hal_rcc.h和stm32f0xx_hal_rcc_ex.h中定义了一组宏;它们允许在RCC块寄存器上执行基本操作,例如外设时钟门控/复...
其实,HAL_ADC_DeInit(&hadc)的功能只是将ADC模块本身及相关寄存器恢复成复位初状态下的默认值,并不是用来关闭ADC外设模块的。如果使用STM32库函数的话,我们可以调用下面函数关闭ADC外设时钟以停止其功能运行。 __HAL_RCC_ADC1_CLK_DISABLE; 可是,当客户在进STOP前将HAL_ADC_DeInit(&hadc)换成__HAL_RCC_ADC1...
3、在使用HAL库时,必须先调用函数:HAL_StatusTypeDef HAL_Init(void)(该函数在stm32f2xx_hal.c中定义,也就意味着第一点中,必须首先实现HAL_MspInit(void)和HAL_MspDeInit(void)) 4、HAL库与STD库不同,HAL库使用RCC中的函数来配置系统时钟,用户需要单独写时钟配置函数(STD库默认在system_stm32f2xx.c中) ...