野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9340|回复: 0

Windows待机再唤醒后USB设备无法向上位机发送消息但能接收

[复制链接]
发表于 2022-7-10 15:12:49 | 显示全部楼层 |阅读模式
首先解释一下,我本人是软件工程师,只是公司的电路工程师离职,临时接手解决一下这个问题,所以关于电路的基础知识并不是很懂,有什么外行的话各位见谅。

板子的主要情况:
1. 用了STM32F103RET6
2. 使用了USB和电脑通信
3. 板子使用12V供电且上面有两个继电器

这是正常的情况:
1. 板子正常上电,正常连接到电脑,电脑打开上位机软件
2. 上位机软件发送指令,可控制继电器开关,同时能收到板子返回的消息

这是异常情况:
1. 关掉上位机软件,把Windows待机,然后重新唤醒
2. 打开上位机软件,这时候,可以控制继电器开关,但是收不到板子的返回消息,使用Bus Hound监控,确实没有收到任何板子的消息

我的一些尝试和排查:
1. 最初我怀疑是Windows待机后,STM32也进入了类似休眠的模式,所以我在固件代码里夹了一些测试代码,在main函数的while循环里,每隔5秒钟开关一次继电器
2. 在把Windows待机后,我发现继电器仍然5秒一次开关,这说明固件的main函数和while循环仍在进行,板子的功能应该是完整的

我的猜测:
在Windows待机和重新被唤醒后,应该是USB相关的一些东西改变了,这个改变只影响到了从板子发送消息到电脑上位机软件,而没有影响反过来的通信

不方便的地方:
我安装了Keil,也有STLink调试器,但是我不知道为什么,我没法进入Debug模式,会提示一个错误,我全网搜索了这个错误,尝试了几种办法还是没法解决,所以我现在没有办法debug这块板子,只能是改估计代码,然后编译,通过板子上已有的IAP功能刷新固件

谢谢各位看到这里,请各位高手帮忙分析下到底是何原因,我还能做哪些尝试。再次感谢。
回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-24 07:15 , Processed in 0.032879 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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