打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
STM32 关于复位类型的判断及软件复位 bug

STM 32在复位时,有严重BUG:


1.   上电复位和外置的看门狗芯片重启复位是无法区分开来的!RCC_FLAG_BORRST,  RCC_FLAG_PINRST,   RCC_FLAG_LPWRRST三个都复位了!


2.   这样当要在上电复位初始化关键代码时,这些代码看门狗复位则不用重启,这个关键代码会导致应用业务的异常!若两个中断分不开,导致系统异常看门狗复位时影响业务!





/*

RCC_FLAG_BORRST:     POR/PDR or BOR reset  //Power-on/power-down reset (POR/PDR reset) or brownout (BOR) reset

RCC_FLAG_PINRST:       Pin reset                      //NRST pin可能为看门狗重启

RCC_FLAG_PORRST:      POR/PDR reset

RCC_FLAG_SFTRST:      Software reset

RCC_FLAG_IWDGRST:   Independent Watchdog reset

RCC_FLAG_WWDGRST: Window Watchdog reset

RCC_FLAG_LPWRRST:    Low Power reset

*/

/*****************************************************************************************

  函  数  名: SysRstSrcRecord

  参  数:


  返  回  值: 系统重启次数记录

  描  述:
记录系统重启的方式记录

  作  者:
李少雄

  版  本:
V1.0 2012年11月12日

******************************************************************************************/

u8 SysRstSrcRecord(u8 *pstRest)

{

    //u8 uchInfoChange=0;

    

    pstRest[0] = RCC_GetFlagStatus(RCC_FLAG_BORRST);

    pstRest[1] = RCC_GetFlagStatus(RCC_FLAG_PINRST);

    pstRest[2] = RCC_GetFlagStatus(RCC_FLAG_PORRST);

    pstRest[3] = RCC_GetFlagStatus(RCC_FLAG_SFTRST);   

    pstRest[4] = RCC_GetFlagStatus(RCC_FLAG_IWDGRST);

    pstRest[5] = RCC_GetFlagStatus(RCC_FLAG_WWDGRST);

    pstRest[6] = RCC_GetFlagStatus(RCC_FLAG_LPWRRST);


}



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【STM32F030开发日志/评测/笔记】+(2)STM32F0处理器I2C实例(操作BMP085气压传感器)
stm32 串口第一字节丢失问题分析
STM32 FLASHhttp
STM32的USART
STM32单片机实现SPI通信连续传送24位数据
stm32不能进入串口收中断,求解答
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服