找回密码
 立即注册
查看: 1603|回复: 7

USB-CDC执行IAP_CONTR=0x60为什么不会重启

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2023-1-14 17:42:13 | 显示全部楼层 |阅读模式
本帖最后由 xxkj2010 于 2023-1-14 17:58 编辑

请教:STC8H启用USB转虚拟串口功能,执行IAP_CONTR=0x60;后为什么不会重启,且再也无法接收PC发来的数据?
代码根据  STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class)协议范例  进行修改。


就是在主程序中设置每5秒执行IAP_CONTR=0x60;
STC-ISP工具上任何提示也没有,串口号也不变,只是单片机有点动静(外接的数码管会闪动一下)
000.jpg


用原生串口(串口1或2)软启动,实现自动烧写功能却完全正常。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15626
发表于 2023-1-14 20:01:36 | 显示全部楼层


1.png
2.png
3.png
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15626
发表于 2023-1-14 20:02:19 | 显示全部楼层
STC8H8K64U在等待USB下载了
  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2023-1-15 18:52:17 | 显示全部楼层
神*** 发表于 2023-1-14 20:02
STC8H8K64U在等待USB下载了

没有,因为CDC串口号没有变化
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15626
发表于 2023-1-15 21:36:07 | 显示全部楼层
你拍个视频发上来,明天还有研发上班,马上放春节假了
  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2023-1-16 09:00:10 | 显示全部楼层

我是这样测试 执行IAP_CONTR=0x60 的:
例程:STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class)协议范例
芯片:STC8H8K64U-45MHz-TSSOP20
主频:24MHz
大循环中改为每10秒重启一次:
   while (1)
    {  
        delay_ms(10000); //
        IAP_CONTR=0x60;//重启
    }
结果:STC-ISP中的串口号不会变回 STC USB Writer (HID1)
现在知道怎样解决这个问题,就是不知道是什么原因。
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2023-1-16 09:18:14 | 显示全部楼层
xxkj*** 发表于 2023-1-16 09:00
我是这样测试 执行IAP_CONTR=0x60 的:
例程:STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class) ...

复位之前,先清除USB设置试试。参考这个按键进入下载模式的配置:
  1. void KeyResetScan(void)
  2. {
  3.     if(!P32)
  4.     {
  5.         if(!Key_Flag)
  6.         {
  7.             Key_cnt++;
  8.             if(Key_cnt >= 1000)                //连续1000ms有效按键检测
  9.             {
  10.                 Key_Flag = 1;                //设置按键状态,防止重复触发
  11.                 USBCON = 0x00;      //清除USB设置
  12.                 USBCLK = 0x00;
  13.                 IRC48MCR = 0x00;
  14.                
  15.                 delay_ms(10);
  16.                 IAP_CONTR = 0x60;   //触发软件复位,从ISP开始执行
  17.                 while (1);
  18.             }
  19.         }
  20.     }
  21.     else
  22.     {
  23.         Key_cnt = 0;
  24.         Key_Flag = 0;
  25.     }
  26. }
复制代码


  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2023-1-17 11:17:46 | 显示全部楼层
我只运行:USBCON = 0x00; 及稍微延时就执行  IAP_CONTR = 0x60;
https://www.stcaimcu.com/forum.p ... ;tid=720&extra=
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-2 15:45 , Processed in 0.204314 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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