控制:LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。在启动阶段,直到这个位被硬件设置为’1’后,此时钟才被释放。 LSE:Low Speed External Clock, 低速外部时钟,接频率为32.768KHz的石英晶体,它为实时时钟或者其他定时功能提...
voidRCC_BackupResetCmd(FunctionalState NewState); voidRCC_ClockSecuritySystemCmd(FunctionalState NewState); voidRCC_MCOConfig(uint8_tRCC_MCO); FlagStatusRCC_GetFlagStatus(uint8_tRCC_FLAG); voidRCC_ClearFlag(void); ITStatusRCC_GetITStatus(uint8_tRCC_IT); voidRCC_ClearITPendingBit(uint8_tRCC_IT...
登录后复制if(0!= (RCC- >CSR &0x80000000))//低功耗复位标志{printf("低功耗复位rn"); }elseif(0!= (RCC- >CSR &0x40000000))//窗口看门狗复位标志{printf("窗口看门狗复位rn"); }elseif(0!= (RCC- >CSR &0x20000000))//独立看门狗复位标志{printf("独立看门狗复位rn"); }elseif(0!= (RCC-...
找到RCC基地址:0x40023800 那么RCC 时钟控制和状态寄存器(RCC_CSR)的地址就是0x40023800+0x74 看寄存器实际用到的就只有24bit到31bit这里声明变量直接指向这几个bit,用来使用。因为是0-31bit是小端存储就是地位在前,所以访问高位8bit地址要加3。 uint8_t*RCC_CSR=(uint8_t*)(0x40023800+0x74+3);//RCC 时...
9、备份域控制寄存器 (RCC_BDCR) :(复位值: 0x0000 0000) 主要功能:外部低速振荡器使能和就绪标志及旁路、RTC时钟源选择和时钟使能、备份域软件复位。 10、控制/状态寄存器 (RCC_CSR) :(复位值: 0x0C00 0000 NRST引脚复位标志、上电/掉电复位标志) ...
*RCC_CSR=0x01; //写0bit清除复位标志 以上代码即可判断,这里只用到了软件复位、独立看门狗复位要使用其他同理增加if。最后写入RMVF(bit0)用于清除复位标志,不然影响非上电启动的下一次判断。 三、STM32HAl库方式 __HAL_RCC_GET_FLAG(RCC_FLAG_SFTRST); //软件启动标志 ...
图11控制/状态寄存器 (RCC_CSR) 9.3 RCC的具体代码分析 在具体分析代码之前,首先给出库函数的相关实现函数。 时钟频率 typedefstruct { uint32_tSYSCLK_Frequency;/*!< 系统时钟频率,单位:Hz */ uint32_tHCLK_Frequency;/*!< AHB总线时钟频率,单位:Hz */ ...
1、系统复位系统复位将所有寄存器设置成复位值,除了 RCC_CSR (控制状 态寄存器)中的相关复位标志位,通过查看 RCC_CSR寄存器,可以 识别复位源。系统复位可由以下5种方式产生:1)外部引脚NRST复位(低电平触发);2)窗口看门狗(WWDG )计数终止3)独立看门狗(IDOG )计数终止4)软件复位(SW RESET),通过将中断应用和复位...
其中系统复位除了RCC_CSR中的复位标志和BKP中的数值不复位之外,其他的所有寄存器全部复位。触发方式例如外部复位、看门狗复位、软件复位等;电源复位由于外部电源的上电/掉电复位或者待机模式返回。复位除了BKP中的寄存器值不动,其他全部复位;备份区域复位的触发源为软件复位或者VDD和VBAT全部掉电时。
的时钟源选择以及分频系数设定vu32CIR;// 清除/使能 时钟就绪中断vu32APB2RSTR;//APB2线上外设复位寄存器vu32APB1RSTR;//APB1线上外设复位寄存器vu32AHBENR;//DMA,SDIO等时钟使能vu32APB2ENR;//APB2线上外设时钟使能vu32APB1ENR;//APB1线上外设时钟使能vu32BDCR;//备份域控制寄存器vu32CSR;}RCC_...