dongchengya 发表于 2024-3-13 11:42:47

已解决: STC32G12K128 无法软复位 IAP_CONTR

本帖最后由 dongchengya 于 2024-3-14 14:14 编辑

STC32G12K128 无法软复位

项目中需要在某一时刻自动软复位,
但在FreeRTOS 中使用软复位命令后,直接导致FreeRTOS 程序停止或死机 ,语句如下:

IAP_CONTR = 0x20 ;//STC32G 软复位



何故? 何解?
在线等。。。


dongchengya 发表于 2024-3-14 09:01:34

本帖最后由 dongchengya 于 2024-3-14 14:40 编辑


解决方法:
一条指令是无法实现软复位的,必须由如下的5行代码 ,组成一个自定义函数,然后再需要软复位的地方调用这个自定义函数:

void SoftReset(void)               // 2024.3.13
{
//    IRC48MCR = 0x80;
//    USBCLK = 0x00;
//    USBCON = 0x90;

          IRC48MCR = 0x00;
          USBCLK = 0x00;
         USBCON = 0x00;      

            vTaskDelay(10);

       IAP_CONTR = 0x20;    // STC32G 软复位 到用户程序区,用户程序重新执行
}


{:smile:}

页: [1]
查看完整版本: 已解决: STC32G12K128 无法软复位 IAP_CONTR