欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5191|回復: 0
打印 上一主題 下一主題
收起左側

華大單片機復位原因的確定

[復制鏈接]
跳轉到指定樓層
樓主
ID:687449 發表于 2020-1-20 22:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本文以華大MCU HC32F003為例說明相應的操作。
HC32F003一共有7個復位信號來源,每個復位信號都可以讓CPU重新運行,絕大多數寄存器會被復位到復位值,程序計數器 PC 會被復位指向 00000000。

復位時復位標識寄存器(Reset_flag )的復位值為 00000000_00000000_00000000_xxxxxx11b。

Ÿ POR/BOR 復位(VCC 域及 Vcore 域)
Ÿ 外部 Reset PAD 復位Ÿ WDT 復位
Ÿ PCA 復位Ÿ LVD 復位
Ÿ Cortex-M0+ SYSRESETREQ 軟件復位
Ÿ Cortex-M0+ LOCKUP 硬件復位

每個復位源由相應的復位標志進行指示。復位標志均由硬件置位,需要用戶軟件清零。

芯片復位時,如果查詢到 Reset_flag. POR15V 或 Reset_flag. POR5V 為 1 則為 上電復位。

由于仿真器的局限性,芯片復位的時候不建議用仿真器來讀Reset_flag的值。建議使用UART將Reset_flag的值輸出。

下面以一段WDT復位的程序顯示一下,相關代碼如下:
#define DEBUG #include "gpio.h"
int main(){    int8_t RstData = 0;    if ( M0P_RESET->RESET_FLAG_f.POR15 || M0P_RESET->RESET_FLAG_f.POR5V )  //上電復位,清Reset_flag    {     M0P_RESET->RESET_FLAG = 0X00;    }    Clk_SetPeripheralGate(ClkPeripheralUart0, TRUE);          //開UART0外設時鐘    Clk_SetPeripheralGate(ClkPeripheralBt, TRUE);             //開定時器外設時鐘    Clk_SetPeripheralGate(ClkPeripheralGpio, TRUE);           //開GPIO外設時鐘    RstData = (int8_t)M0P_RESET->RESET_FLAG ;                 #ifdef DEBUG  Debug_UartInit();                                           //調試串口初始化#endif  #ifdef DEBUG  printf("The RESET_FLAG is %x \n",RstData);                  //輸出調試內容#endif      M0P_RESET->RESET_FLAG = 0X00;                             //清Reset_flag    M0P_CLOCK->PERI_CLKEN_f.WDT = 0X01;                       //打開WDT時鐘    M0P_WDT->CON_f.WOV = 0X0A;                                //定時1.64s    M0P_WDT->CON_f.WINT_EN =    0X00;                         //WDT溢出復位    M0P_WDT->RST = 0x1E;                                      //啟動WDT    M0P_WDT->RST = 0xE1;  while(1)  {     __enable_irq();   ;  }}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表