找回密码
 立即注册
楼主: tzz1983

USB下载,只能是冷启动吗? | 已解决, 可以用软复位

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-06-16 00:36:36
已绑定手机

0

主题

44

回帖

1434

积分

金牌会员

积分
1434
发表于 2024-9-4 14:23:14 | 显示全部楼层
学习了.
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2450

积分

荣誉版主

积分
2450
发表于 2024-9-4 21:17:14 | 显示全部楼层
才发现这个秘密,  
软复位其实不需要 P3.2 == 0 , 就可以直接进USB下载引导 USB Writer HID1 ,

只要设置任意端口:
        if (!Pxx){
            IAP_CONTR=0X60;     //如果自身不包含USB相关的应用,这一句就够了
        }


如果本身就是USB应用,则需要多加两句来断来原有的USB连接:
        if(!Pxx){
            USBCON = 0x00;        //禁用USB功能
            delay_ms(2);              //等电脑检测到USB设备掉线
            IAP_CONTR=0X60;     //软复位, 电脑重新枚举到 USB Writer HID1
        }

还是挺方便的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:551
  • 最近打卡:2025-06-18 08:14:26

15

主题

154

回帖

330

积分

中级会员

积分
330
发表于 2024-12-14 16:26:28 | 显示全部楼层
以下是按键进行复位的片断,,就是不能 让电脑重新枚举到 USB Writer HID1,请大家看看,这样写是什么问题,让单片机只是复位重启,然后又运行用户代码的?? 
 while(!KEY)
        {
            if(holdkey_time>=20)//holdkey_time 在定时器中计时
            {
                USBCON = 0x00;      //清除USB设置
                USBCLK = 0x00;
                IRC48MCR = 0x00;

                delay_ms(10);                           //检测到正确的命令序列后复位到系统区,此处的延时可省去
                IAP_CONTR = 0x60;                       //复位到系统区
                while (1);
            }
        }
        holdkey_time = 0;

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:397
  • 最近打卡:2025-06-18 00:32:18
已绑定手机

142

主题

1688

回帖

2567

积分

金牌会员

积分
2567
发表于 2024-12-14 23:18:48 来自手机 | 显示全部楼层
明天我也试试,软复位
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 10:45 , Processed in 0.123562 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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