RCC->CR |= ((uint32_t)RCC_CR_HSEON);//HSE使能 /* Wait till HSE is ready and if Time out is reached exit */ do //循环,直到HSE使能成功或者超时 { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)...
相关的硬件配置可参考图HSE/LSE时钟源,在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时,直到这一位被硬件置'1',时钟才被释放出来。如果在时钟中断寄存器RCC_CIR中允许产生中断,将会产生相应中断。 HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。 HSI时钟 HSI时钟...
RCC->CR|=((uint32_t)RCC_CR_HSEON); // 等待 HSE 启动稳定 do{ HSEStatus=RCC->CR&RCC_CR_HSERDY; StartUpCounter++; }while((HSEStatus==0)&&(StartUpCounter !=HSE_STARTUP_TIMEOUT)); if((RCC->CR&RCC_CR_HSERDY)!=RESET) { HSEStatus=(uint32_t)0x01; }else{ HSEStatus=(uint32_t...
使能HSE时钟并等待完成。 /* Enable HSE */RCC->CR|=((uint32_t)RCC_CR_HSEON);/* Wait till HSE is ready and if Time out is reached exit */do{HSEStatus=RCC->CR&RCC_CR_HSERDY;StartUpCounter++;}while((HSEStatus==0)&&(StartUpCounter!=HSE_STARTUP_TIMEOUT));if((RCC->CR&RCC_CR_H...
RCC->CR |= ((uint32_t)RCC_CR_HSEON);//HSE使能 /* Wait till HSE is ready and if Time out is reached exit */ do //循环,直到HSE使能成功或者超时 { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)...
1、时钟控制寄存器(RCC_CR):(复位值为0x0000 xx83,内部低速时钟使能和就绪,内部时钟校准)主要功能...
STM32的时钟系统RCC详细整理 一、综述: 1、时钟源 在STM32中,一共有5个时钟源,分别是HSI、HSE、LSI、LSE、PLL。 ①HSI是高速内部时钟,RC振荡器,频率为8MHz; ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围是4MHz–16MHz; ③LSI是低速内部时钟,RC振荡器,频率为40KHz...
if ((RCC->CR & RCC_CR_HSERDY) != RESET) { HSEStatus = (uint32_t)0x01; } else { HSEStatus = (uint32_t)0x00; } if (HSEStatus == (uint32_t)0x01) { #if !defined STM32F10X_LD_VL && !defined STM32F10X_MD_VL && !defined STM32F10X_HD_VL ...
RCC_CR中第17位是HSERDY,即外部时钟就绪位,当外部时钟就绪时,HSERDY位就等于1了,RCC-CR>>17语句将第17位移到第0位,于是RCC-CR就等于0x00000001了,(!(RCC-CR>>17))值即为0了,while(!(RCC-CR>>
HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSEStartUp_TimeOut)); //等待HSE确实可用,这有个标志,即RCC_CR寄存器中的HSERDY位(bit 17),这个等待不会无限长,有个超时策略,即每循环一次计数器加1,如果计数的次数超过HSEStartUp_TimeOut...