查看: 2750|回复: 0
打印 上一主题 下一主题

兰斯1重制版汉化: [提问] 华大单片机复位原因的确定 [复制链接]

白虎姐 (离线)

布莱恩.科兰斯顿 www.zswle.com.cn 佃户

积分
69
帖子
8
跳转到指定楼层
楼主
发表于 2020-1-22 23:06:59 |只看该作者 |倒序浏览
华大单片机-中国芯,中国梦中国人用自己的“芯”
• 如有技术与价格疑问,可以随时拨打电话或QQ咨询
• 我司有强大的技术团队,可根据您的要求进行研发设计,量身定做,客户满意是我们的最高宗旨~!
• 电话:18124577713  QQ:783592501 • 华大MCU交流QQ群: 164973950

华大单片机复位原因的确定

本文以华大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();   ;  }}


程序测试结果如下:

相关的测试代码附件可以到论坛下载(阅读原文)。


您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
布莱恩.科兰斯顿 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
回顶部