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

虚拟串口复位后会卡死

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-07-23 08:52:53
已绑定手机

115

主题

4989

回帖

1万

积分

超级版主

无情的代码机器

积分
10892
发表于 2026-7-8 09:00:04 | 显示全部楼层
STC_00*** 发表于 2026-7-8 08:52
嗯——,即使前置了
RSTFLAG |= 0x04;   //设置硬件复位后需要检测P3.2的状态选择运行区域
USBCON = 0x0 ...

和我发的不一样?

截图202607080859419336.jpg

用核心板能复现吗?打包发下你的工程我试试?
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-07-08 08:52:01
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-8 09:29:47 | 显示全部楼层
erci*** 发表于 2026-7-8 09:00
和我发的不一样?

使用擎天柱,配合 23.1-通过USB_CDC协议虚拟串口收发数据例程,isp选择使用复位功能,后串口通信也不行呢

点评

这个例程是长按P32软复位,和选不选“isp选择使用复位功能”没关系呢 没有复现问题,和电脑差异有关? [apoyl_aliyunvideo]1085[/apoyl_aliyunvideo]  详情 回复 发表于 2026-7-8 10:53
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-07-08 08:52:01
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-8 09:49:46 | 显示全部楼层
STC_00*** 发表于 2026-7-8 08:52
嗯——,即使前置了
RSTFLAG |= 0x04;   //设置硬件复位后需要检测P3.2的状态选择运行区域
USBCON = 0x0 ...
ercircle 发表于 2026-7-8 09:00
和我发的不一样?

使用擎天柱,配合 23.1-通过USB_CDC协议虚拟串口收发数据例程,isp选择使用复位功能,后串口通信也不行呢   

23.1-通过USB_CDC协议虚拟串口收发数据.zip

100.82 KB, 下载次数: 1

点评

发的工程无法编译,将用到的头文件和LIB集中到工程目录下。确保和你用的版本一致 [attachimg]143388[/attachimg]  详情 回复 发表于 2026-7-8 10:20
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-07-23 08:52:53
已绑定手机

115

主题

4989

回帖

1万

积分

超级版主

无情的代码机器

积分
10892
发表于 2026-7-8 10:20:07 | 显示全部楼层
STC_00*** 发表于 2026-7-8 09:49
使用擎天柱,配合 23.1-通过USB_CDC协议虚拟串口收发数据例程,isp选择使用复位功能,后串口通信也不行 ...

发的工程无法编译,将用到的头文件和LIB集中到工程目录下。确保和你用的版本一致


截图202607081019498919.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-07-23 08:52:53
已绑定手机

115

主题

4989

回帖

1万

积分

超级版主

无情的代码机器

积分
10892
发表于 2026-7-8 10:53:41 | 显示全部楼层
STC_00*** 发表于 2026-7-8 09:29
使用擎天柱,配合 23.1-通过USB_CDC协议虚拟串口收发数据例程,isp选择使用复位功能,后串口通信也不行呢 ...

这个例程是长按P32软复位,和选不选“isp选择使用复位功能”没关系呢

没有复现问题,和电脑差异有关?


三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-07-08 08:52:01
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-8 11:42:42 | 显示全部楼层
erci*** 发表于 2026-7-8 10:20
发的工程无法编译,将用到的头文件和LIB集中到工程目录下。确保和你用的版本一致

这个工程同样可以复现问题,芯片是AI8H2K32U-45I-QFN32

MPAvgTherm_V51_test.zip

509.82 KB, 下载次数: 2

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-07-08 08:52:01
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-8 12:01:07 | 显示全部楼层
erci*** 发表于 2026-7-8 10:53
这个例程是长按P32软复位,和选不选“isp选择使用复位功能”没关系呢

没有复现问题,和电脑差异有关?

?牢大,可能是我表述不清了
该问题是 使用usb虚拟串口通信,启用io复位功能 按键复位后,串口通信功能丧失

视频操作两次烧录后,串口通信正常。

问题复现:
烧录程序后,使用虚拟串口通信,此时通信正常,没问题
然,接着按下复位按键,继续使用虚拟串口,发现功能丧失

点评

https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=24782&pid=222783 你又回到了6#的问题 不能直接按复位键! 不能直接按复位键! 不能直接按复位键! 23.1例程是通过P32按键软复位!复位前释  详情 回复 发表于 2026-7-8 12:03
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-07-23 08:52:53
已绑定手机

115

主题

4989

回帖

1万

积分

超级版主

无情的代码机器

积分
10892
发表于 2026-7-8 12:03:54 | 显示全部楼层
STC_00*** 发表于 2026-7-8 12:01
?牢大,可能是我表述不清了
该问题是 使用usb虚拟串口通信,启用io复位功能 按键复位后,串口通信功能丧 ...

https://www.stcaimcu.com/forum.p ... 4782&pid=222783


你又回到了6#的问题
不能直接按复位键!
不能直接按复位键!
不能直接按复位键!

23.1例程是通过P32按键软复位!复位前释放USB和PLL资源!

不要直接isp设置复位IO功能复位!改为软件检测,参考23.1用代码复位!
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2026-07-08 08:52:01
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-8 12:13:26 | 显示全部楼层
erci*** 发表于 2026-7-8 12:03
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=24782&pid=222783

io硬件复位,能讲下为啥不能实现吗?

int main(void)
{
    USBCON = 0x00;      //清除USB设置
    USBCLK = 0x00;
    IRC48MCR = 0x00;
       
        sys_init();
       
       
        usb_init();
       
        pwm_init();
       
       
       
        IE2 |= 0x80;                // 使能USB中断
        EA = 1;                                // IE |= 0X80;
       
       
        delay_ms(1000);
        lcd_init();
//        pwm_set_duty(50);
        lcd_clearScreen();        // 清屏
    lcd_Show_zyzl_96x64(0,16,0);  

       
        while(1)
        {
                KeyResetScan();   //长按P3.2口按键触发软件复位,进入USB下载模式,不需要此功能可删除本行代码
               
                if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
            continue;

        if (bUsbOutReady)
        {
            usb_OUT_done();    //接收应答(固定格式)
            
            printf("OutNumber=0x%X\r\n",OutNumber);  //使用 printf 函数打印接收数据长度

            USB_SendData(UsbOutBuffer,OutNumber);    //发送数据缓冲区,长度
        }
       
        }
       
}
牢大,从头运行,这难道没有释放?

点评

你实测了不行,不然也不会有这个帖子了。 目前不支持。照着执行就行。  详情 回复 发表于 2026-7-8 14:06
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:605
  • 最近打卡:2026-07-23 08:52:53
已绑定手机

115

主题

4989

回帖

1万

积分

超级版主

无情的代码机器

积分
10892
发表于 2026-7-8 14:06:11 | 显示全部楼层
STC_00*** 发表于 2026-7-8 12:13
io硬件复位,能讲下为啥不能实现吗?

int main(void)

你实测了不行,不然也不会有这个帖子了。
目前不支持。照着执行就行。


三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-23 15:14 , Processed in 0.521689 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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