热度 4
2024-5-22 12:39
351 次阅读|
0 个评论
BOR(Brown-out Reset)是一种低电压复位,当电源电压低于设定的阈值时,系统会自动复位。这种复位通常用于保护硬件设备,防止因电压过低导致的设备损坏。 IWDT_Reset(Independent Watchdog Timer Reset)是一种独立看门狗定时器复位,当系统运行过程中出现故障或死循环时,看门狗定时器会在一定时间后自动复位系统。这种复位通常用于检测和修复软件故障。 以下是一个简单的BOR和IWDT_Reset的代码示例: ```c #include "stm32f4xx.h" void BOR_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR时钟 PWR_ClearFlag(PWR_FLAG_SB); //清除电源故障标志位 PWR_BackupAccessCmd(ENABLE); //使能备份寄存器访问 PWR_BackupRegReset(); //复位备份寄存器 PWR_BackupAccessCmd(DISABLE); //禁止备份寄存器访问 } void IWDG_Init(uint8_t prer, uint16_t rlr) { RLR的写操作 IWDG_SetPrescaler(prer); //设置预分频值 IWDG_SetReload(rlr); //设置重装载值 IWDG_ReloadCounter(); //重新加载计数值 IWDG_Enable(); //使能IWDG } int main(void) { BOR_Init(); //初始化BOR IWDG_Init(IWDG_Prescaler_64, 4095); //初始化IWDG,预分频值为64,重装载值为4095 while (1) { //主循环 } } ```