找回密码
 立即注册
查看: 100|回复: 5

新版ISP软件串口发送数据时遇到停止退出的问题

[复制链接]
  • 打卡等级:以坛为家III
  • 打卡总天数:832
  • 最近打卡:2026-07-22 04:45:29

44

主题

530

回帖

4993

积分

荣誉版主

积分
4993
发表于 2026-7-9 14:26:46 | 显示全部楼层 |阅读模式
前阵子用USB串口玩虚拟OLED的时候,由于打开串口之后忘记关闭,单片机一直向ISP发送数据,
然后碰到了几次ISP软件停止退出的问题
就是一开始VOLED可以正常显示,过段时间软件会弹出错误提示,ISP界面卡死。点按钮之后软件关闭。




截图202607091400144779.jpg

系统是WIn10,单片机是STC32G144KL246

ISP版本是 V6.96Z


====================================


今天又出现了,于是好奇做了两次测试,先将“接收”统计清零,打开串口之后放着不管它


一次是在 297992798,一次是在 308223575,(3亿左右)

然后弹出错误窗口。
截图202607091405337508.jpg 截图202607091407097935.jpg


==============================================

不过刚刚又换了个旧版 V6.95J 版本的ISP,结果发现,旧版ISP里可以一直接收数据,字节数超过上面那两个数量之后依旧正常发送。
截止到截图时,ISP接收的字节数是 402367533(超过4亿)
截图202607091416458559.jpg

AI助手建议在程序里加上 USBLIB_OUT_Done(); 但是问题依旧,所以可能不是程序原因。而且旧版ISP没有报错。

请问这个情况可能是哪里的问题?

是ISP V6.96Z 的问题?还是虚拟OLED的问题?






能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:832
  • 最近打卡:2026-07-22 04:45:29

44

主题

530

回帖

4993

积分

荣誉版主

积分
4993
发表于 2026-7-9 16:26:12 | 显示全部楼层
又用 V6.96Z 版试了一下不用仿真调试接口,直接用 printf_usb 发送数据,
同样也是在 306574062 (3亿左右)的时候停止工作
截图202607091624223108.jpg

能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:316
  • 最近打卡:2026-07-22 06:56:11
已绑定手机

70

主题

874

回帖

3225

积分

论坛元老

DIY玩家

积分
3225
发表于 2026-7-10 06:52:15 | 显示全部楼层
大*** 发表于 2026-7-9 16:26
又用 V6.96Z 版试了一下不用仿真调试接口,直接用 printf_usb 发送数据,同样也是在 306574062 (3亿左右) ...

如果需求急
看看别的版本
新版整合功能多
设计更难排查bug

点评

对,这次只是无意中发现的这个问题,平时习惯用实体屏幕当监视器,用到串口助手的时候一般也是看完就关掉,基本没有连发这么多个数据的时候。不过随着的单片机性能越来越强,将来不一定用不上这么大量数据的时候。  详情 回复 发表于 2026-7-10 07:55
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:832
  • 最近打卡:2026-07-22 04:45:29

44

主题

530

回帖

4993

积分

荣誉版主

积分
4993
发表于 2026-7-10 07:55:54 | 显示全部楼层
狂热*** 发表于 2026-7-10 06:52
如果需求急
看看别的版本
新版整合功能多

对,这次只是无意中发现的这个问题,平时习惯用实体屏幕当监视器,用到串口助手的时候一般也是看完就关掉,基本没有连发这么多个数据的时候。不过随着的单片机性能越来越强,将来不一定用不上这么大量数据的时候。
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:155
  • 最近打卡:2026-07-10 18:27:46

28

主题

1300

回帖

4871

积分

超级版主

积分
4871
发表于 2026-7-10 18:27:46 | 显示全部楼层
多谢反馈!
问题基本已找到。

问题出在接收线程的代码里面有内存泄露,如果在接收的过程中清除接收缓冲区,或者关闭串口再重新打开接收,就不会发现问题。
只有在长时间连续接收的情况下,将问题逐步严重话,最终才能发现问题。

再次感谢您的帮忙!

点评

USB-CDC发送数据的过程中,中途尝试过关闭串口再重新打开,也重启过几次单片机, 但是只要没有给计数器清零,都会在累计到“3亿”左右的时候停止运行。 另外尝试了下用普通串口UART1发送,好像没停止。  详情 回复 发表于 2026-7-10 19:58
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:832
  • 最近打卡:2026-07-22 04:45:29

44

主题

530

回帖

4993

积分

荣誉版主

积分
4993
发表于 2026-7-10 19:58:57 | 显示全部楼层
zh*** 发表于 2026-7-10 18:27
多谢反馈!
问题基本已找到。



USB-CDC发送数据的过程中,中途尝试过关闭串口再重新打开,也重启过几次单片机,
但是只要没有给计数器清零,都会在累计到“3亿”左右的时候停止运行。

另外尝试了下用普通串口UART1发送,好像没停止。
能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-22 08:59 , Processed in 0.074150 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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