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

已解决: STC32G12K128 无法软复位 IAP_CONTR

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-03-20 22:27:30

3

主题

31

回帖

106

积分

注册会员

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

STC32G12K128 无法软复位

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

IAP_CONTR = 0x20 ;  //STC32G 软复位



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


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-03-20 22:27:30

3

主题

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, 2025-5-3 00:39 , Processed in 0.101606 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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