新版ISP软件串口发送数据时遇到停止退出的问题
前阵子用USB串口玩虚拟OLED的时候,由于打开串口之后忘记关闭,单片机一直向ISP发送数据,然后碰到了几次ISP软件停止退出的问题
就是一开始VOLED可以正常显示,过段时间软件会弹出错误提示,ISP界面卡死。点按钮之后软件关闭。
系统是WIn10,单片机是STC32G144KL246
ISP版本是 V6.96Z
====================================
今天又出现了,于是好奇做了两次测试,先将“接收”统计清零,打开串口之后放着不管它
一次是在 297992798,一次是在 308223575,(3亿左右)
然后弹出错误窗口。
==============================================
不过刚刚又换了个旧版 V6.95J 版本的ISP,结果发现,旧版ISP里可以一直接收数据,字节数超过上面那两个数量之后依旧正常发送。
截止到截图时,ISP接收的字节数是 402367533(超过4亿)
AI助手建议在程序里加上 USBLIB_OUT_Done(); 但是问题依旧,所以可能不是程序原因。而且旧版ISP没有报错。
请问这个情况可能是哪里的问题?
是ISP V6.96Z 的问题?还是虚拟OLED的问题?
又用 V6.96Z 版试了一下不用仿真调试接口,直接用 printf_usb 发送数据,
同样也是在 306574062 (3亿左右)的时候停止工作
大明狐 发表于 2026-7-9 16:26
又用 V6.96Z 版试了一下不用仿真调试接口,直接用 printf_usb 发送数据,同样也是在 306574062 (3亿左右) ...
如果需求急
看看别的版本
新版整合功能多
设计更难排查bug 狂热主宰 发表于 2026-7-10 06:52
如果需求急
看看别的版本
新版整合功能多
对,这次只是无意中发现的这个问题,平时习惯用实体屏幕当监视器,用到串口助手的时候一般也是看完就关掉,基本没有连发这么多个数据的时候。不过随着的单片机性能越来越强,将来不一定用不上这么大量数据的时候。
多谢反馈!
问题基本已找到。
问题出在接收线程的代码里面有内存泄露,如果在接收的过程中清除接收缓冲区,或者关闭串口再重新打开接收,就不会发现问题。
只有在长时间连续接收的情况下,将问题逐步严重话,最终才能发现问题。
再次感谢您的帮忙! zhp 发表于 2026-7-10 18:27
多谢反馈!
问题基本已找到。
{:4_250:}{:4_250:}{:4_250:}
USB-CDC发送数据的过程中,中途尝试过关闭串口再重新打开,也重启过几次单片机,
但是只要没有给计数器清零,都会在累计到“3亿”左右的时候停止运行。
另外尝试了下用普通串口UART1发送,好像没停止。
页:
[1]