找回密码
 立即注册
查看: 71|回复: 1

已解决: STC32G12K128 无法软复位 IAP_CONTR

[复制链接]
  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    106

    积分

    注册会员

    积分
    106
    发表于 2024-3-13 11:42:47 | 显示全部楼层 |阅读模式
    本帖最后由 dongchengya 于 2024-3-14 14:14 编辑

    STC32G12K128 无法软复位

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

    IAP_CONTR = 0x20 ;  //STC32G 软复位



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


    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    106

    积分

    注册会员

    积分
    106
     楼主| 发表于 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 软复位 到用户程序区,用户程序重新执行
    }




    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-1 22:02 , Processed in 0.077064 second(s), 32 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表