stm32f4如何软复位
- 编程技术
- 2025-02-23 17:15:22
- 1

STM32F4系列微控制器可以通过软件方式实现复位,主要有以下几种方法:1. 软件复位(Software Reset): 使用SCB(System Control Bl...
STM32F4系列微控制器可以通过软件方式实现复位,主要有以下几种方法:
1. 软件复位(Software Reset):
使用SCB(System Control Block)寄存器:
AIRCR(Alignment and Interrupt Control Register):通过设置该寄存器的SYSRESETREQ位,可以触发系统复位。
```c
SCB->AIRCR = (SCB->AIRCR & ~SCB_AIRCR_VECTKEY_Msk) SCB_AIRCR_VECTKEY_Msk SCB_AIRCR_SYSRESETREQ_Msk;
```
BKPR(Backup Register):通过修改BKPR寄存器,也可以触发系统复位。
使用RCC(Reset and Clock Control)寄存器:
RCC_AIRCR:设置该寄存器的RESET位,也可以触发系统复位。
```c
RCC->APB1ENR = RCC_APB1ENR_PWREN; // 使能电源接口时钟
RCC->APB1ENR = RCC_APB1ENR_BKPEN; // 使能备份寄存器时钟
RCC->BKP->BKP0R = 0x9A5A; // 设置复位密码
RCC->BKP->BKP0R = 0x5A9A; // 设置复位密码
RCC->APB1ENR &= ~RCC_APB1ENR_PWREN; // 关闭电源接口时钟
RCC->APB1ENR &= ~RCC_APB1ENR_BKPEN; // 关闭备份寄存器时钟
RCC->APB1ENR = RCC_APB1ENR_RCCEN; // 使能RCC时钟
RCC->CR = RCC_CR_HSEON; // 开启外部高速时钟
RCC->CR = RCC_CR_PLLON; // 开启PLL时钟
RCC->CR = RCC_CR_PLLRDY; // 等待PLL时钟就绪
RCC->CR = RCC_CR_HSION; // 开启HSI时钟
RCC->CR = RCC_CR_HSIRDY; // 等待HSI时钟就绪
RCC->CFGR = RCC_CFGR_SW_HSI; // 设置系统时钟为HSI
RCC->CR = RCC_CR_PLLRDY; // 等待PLL时钟就绪
RCC->CFGR = RCC_CFGR_PLLSRC_HSE; // 设置PLL时钟源为HSE
RCC->CFGR = RCC_CFGR_PLLMULL12; // 设置PLL倍频为12
RCC->CFGR = RCC_CFGR_PLLQ9; // 设置PLL分频为9
RCC->CFGR = RCC_CFGR_PLLP; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLR; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLU; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLV; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLX; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLY; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLZ; // 设置PLL分频为2
RCC->CFGR = RCC_CFGR_PLLW; // 设置PLL分频
本文链接:http://www.xinin56.com/bian/706615.html
上一篇:如何同时修改不同标签行距
下一篇:手机爱奇艺如何转换mp4格式