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

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

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
    发表于 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)软启动,实现自动烧写功能却完全正常。
    回复 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9496

    回帖

    1万

    积分

    管理员

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


    1.png
    2.png
    3.png

    该用户从未签到

    552

    主题

    9496

    回帖

    1万

    积分

    管理员

    积分
    14067
    发表于 2023-1-14 20:02:19 | 显示全部楼层
    STC8H8K64U在等待USB下载了
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

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

    没有,因为CDC串口号没有变化

    该用户从未签到

    552

    主题

    9496

    回帖

    1万

    积分

    管理员

    积分
    14067
    发表于 2023-1-15 21:36:07 | 显示全部楼层
    你拍个视频发上来,明天还有研发上班,马上放春节假了
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
     楼主| 发表于 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)
    现在知道怎样解决这个问题,就是不知道是什么原因。
  • TA的每日心情
    开心
    昨天 07:59
  • 签到天数: 101 天

    [LV.6]常住居民II

    41

    主题

    1016

    回帖

    6971

    积分

    荣誉版主

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

    积分
    6971
    QQ
    发表于 2023-1-16 09:18:14 | 显示全部楼层
    xxkj2010 发表于 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. }
    复制代码


  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 173 天

    [LV.7]常住居民III

    67

    主题

    861

    回帖

    2890

    积分

    金牌会员

    积分
    2890
     楼主| 发表于 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, 2024-5-18 20:03 , Processed in 0.070294 second(s), 61 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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