【已解决】STC32G144K246 无法软复位 IAP_CONTR
STC32G144K246 无法软复位 IAP_CONTR项目中需要用到软件复位重启的功能,但是执行到这里就卡死了。设备也无法重启。
void Sys_Soft_Reset()
{
EA=0;
IRC48MCR = 0x00;
USBCLK = 0x00;
USBCON = 0x00;
delay_ms(200);
IAP_CONTR = 0x20;
}
何故? 何解? 在线等。。。
另外自己测试过通过看门狗重启是正常的。。。 为何软件重启就不行。。。
我初始化程序里面有PLL高频。
然后复位之前,一定要先关闭这个PLL倍频,因为软件重启的时候, 时钟频率寄存器不会更改。这个频率太高了。 启动 的时候时钟好像跑不起来。
CLKSEL = 0x00; // 切换主时钟到内部IRC(避开PLL)
HPLLCR &= ~0x80; // 关闭PLL使能位
delay_ms(10);
IAP_CONTR = 0x20; // 设置SWRST=1, SWBS=0 Kian Cai 发表于 2026-5-26 14:37
问题搞定了, 强烈建议 手册增加这个提示。
我初始化程序里面有PLL倍频。
ercircle 发表于 2026-5-26 15:50
USB 我关了也不行,一楼发帖里面就是这样写的。 后面单独测试了一个程序,把PLL关闭后就正常了。 这个测试就正常了。 ercircle 发表于 2026-5-26 15:50
{:4_197:}感谢感谢,看到了。
页:
[1]