单片机复位源

RCC

  • RCC = Reset and Clock Control(复位和时钟控制)
  • 管理着多种复位信号
    • 电源复位:芯片刚上电、电压太低,所有寄存器都恢复默认值
    • 系统复位:看门狗超时、软件复位、复位按键,CPU和外设复位,但备份域(RTC时间、备份寄存器)的数据保留
    • 备份域复位:只复位RTC、备份寄存器
  • 产生所有的总线和外设时钟
    • 选择时钟来源
      • HSI(内部高速时钟):芯片自带的RC振荡器,精度一般,但不用外接晶振
      • HSE(外部高速时钟):需要外接接一个晶振,精度高
      • LSI(内部低速时钟):低功耗模式下用,省电
      • LSE(外部低速时钟):32.768kHz,专门给RTC用
      • PLL(锁相环):可以把低频时钟倍频到高频(比如把16MHz变成160MHz)
    • 配置时钟频率(调电压)
      • SYSCLK(系统时钟):CPU跑的频率
      • AHB总线时钟:给内存、DMA这些高速设备
      • APB1/APB2总线时钟:给串口、定时器这些外设(APB1通常频率低一些,省电)
    • 使能外设时钟

复位源

电源复位

  • 在以下事件发生时,会产生电源复位:
    • 掉电复位(BOR)
    • 从待机模式退出
    • 从关机模式退出

系统复位

复位源

  • 在以下事件发生时,会产生系统复位
    • 芯片 nNRST引脚检测到低电平(external reset)
    • 窗口看门狗事件(WWDG reset)
    • 独立看门狗事件(IWDG reset)
    • 软件复位(SW reset)
    • 低功耗模式安全复位
    • 选择字节(option-byte,用于控制单片机启动特性)载入复位
    • 掉电复位(BOR)

复位源的查询

  • 复位源可以通过RCC_CSR(RCC control/status register)寄存器中的复位标志来获取
  • 相应的 RSTF 标志在发生相应的复位时,由硬件自动置1
  • RMVF位置1时,清除所有的复位标志位

接口函数

  • 复位源查询
c 复制代码
// RCC_FLAG_BORRST BOR reset
//RCC_FLAG_OBLRST OBLRST reset
//RCC_FLAG_PINRST Pin reset
//RCC_FLAG_RMVF Remove reset Flag
//RCC_FLAG_SFTRST Software reset
//RCC_FLAG_IWDGRST Independent Watchdog reset
//RCC_FLAG_WWDGRST Window Watchdog reset
//RCC_FLAG_LPWRRST Low Power reset
__HAL_RCC_GET_FLAG(__FLAG__)
  • 复位标志的清除
c 复制代码
__HAL_RCC_CLEAR_RESET_FLAGS()

后备域复位

后备域:在主电源掉电后,部分电路使用另一组后备电源(一般是后备电池)供电,主要维持

RTC的运转和一部分内存的数据保持

  • 有两种方式可以产生后备域复位
  • 通过软件将RCC_BDCR寄存器中的 BDRST 位置1,产生
  • 主电源和后备电源都掉电,然后,主电源或后备电源上电时,产生
相关推荐
这波不该贪内存的5 小时前
裸机开发VS单片机:架构与实战对比
单片机
山羊硬件Time6 小时前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
神一样的老师6 小时前
【兆易创新GD32VW553开发板试用】红外遥控接入天气时钟实战
驱动开发·单片机·嵌入式硬件
asjodnobfy6 小时前
Π型滤波电路
嵌入式硬件·硬件工程
多看多敲多思考8 小时前
华润微CS32ME10 MCU使用教程(2)---CS32ME10之UART串口模块使用
stm32·单片机·嵌入式硬件·mcu
神一样的老师8 小时前
【兆易创新GD32VW553开发板试用】天气时钟设计与调试实战
单片机·嵌入式硬件·物联网
国科安芯9 小时前
核电站仪控与监测系统中抗辐射 MCU 芯片应用研究
单片机·嵌入式硬件·macos·无人机·cocos2d·核电站
黑白园9 小时前
STM32系统时钟由72M修改为36M验证示例
stm32·单片机·嵌入式硬件
LCG元10 小时前
基于ARM7的LCD设计与实现:S3C4510B通用IO口控制液晶模块
stm32·单片机·嵌入式硬件
山后太阳10 小时前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件