- 打卡等级:以坛为家II
- 打卡总天数:505
- 最近打卡:2025-05-01 06:09:51
中级会员
- 积分
- 404
|
发表于 2024-11-25 21:58:17
|
显示全部楼层
本帖最后由 wpppmlah 于 2024-11-25 22:00 编辑
一个工程中想加入此功能失败了,
工程环境:STC8H8K64U ,30MHZ,使用了stc_usb_cdc_8h_xdata.LIB 库实现的CDC
当KEY(P32)按下时holdkey_time计时变量在定时器中断中进行计时;当到达时间后,使用软件复位 IAP_CONTR = 0x60;//复位到系统区. 结果单片机只是重启后又跑起了代码.
请问这个是什么问题造成的? 单片机没有控制电源断电,电源是直通模式, 这一点不用考虑.
另外,使用STCISP中的"收到用户命令后复位到ISP监控程序区"时也只是单片机重启.
while(!KEY)
{
if(holdkey_time>=20)
{
//有没有这三句,结果一样↓
USBCON = 0x00; //清除USB设置
USBCLK = 0x00;
IRC48MCR = 0x00;
//有没有这三句,结果一样↑
delay_ms(10); //检测到正确的命令序列后复位到系统区,此处的延时可省去
IAP_CONTR = 0x60; //复位到系统区
while (1);
}
}
holdkey_time = 0;
|
|