[技术问答] HC32F460 怎么判断CDC USB串口已经打开

[复制链接]
4238|19
 楼主| xshun 发表于 2024-2-18 17:21 | 显示全部楼层 |阅读模式
大家好,我目前开发的产品中有基于HC32F460的USB CDC 串口的使用,在测试时碰到以下问题,当USB 在电脑上虚拟出的UCB CDC串口没有打开时,MCU主动发送的数据发送不成功,发送状态USB_Tx_State[i] 也一直清不掉,正常该状态是在发送完成中断里usbd_cdc_DataIn里清掉的,目前我考虑如果PC端CDC串口没有打开,MCU就不主动发送数据,应该能避免该问题,但是MCU不知如何判断电脑端串口有没有打开,请问下各位大佬,是否有CDC 串口打开或者正常通信标志?
weifeng90 发表于 2024-2-19 07:51 来自手机 | 显示全部楼层
USB有个握手标志,看一下。
小华单片机代理 发表于 2024-2-21 17:24 | 显示全部楼层
小华代理,有FAE,13538292986
七毛钱 发表于 2024-2-27 10:46 | 显示全部楼层
检查USB设备状态,确保USB设备已经成功枚举
jcky001 发表于 2024-2-27 12:59 | 显示全部楼层
如果您的固件库提供了检查USB或CDC状态的函数,您可以直接使用这些函数来判断CDC USB串口是否已经打开。
两只袜子 发表于 2024-2-27 14:00 | 显示全部楼层
检查CDC驱动是否已经初始化并准备好进行数据传输。
cr315 发表于 2024-2-27 14:59 | 显示全部楼层
使用调试器和/或日志记录功能
ex7s4 发表于 2024-3-27 10:25 | 显示全部楼层
你可以让上位机,如果打开的话,给你发个命令呗
g0d5xs 发表于 2024-3-27 11:30 | 显示全部楼层
一般来说需要有个标记的,就是上位机打开之后,会给下位机有一个指令就好了
b5z1giu 发表于 2024-3-27 12:35 | 显示全部楼层
这个不费劲吧,你是电脑端串口打开之后给你发个数据呗
p0gon9y 发表于 2024-3-27 13:46 | 显示全部楼层
其实你可以循环发一个指令,看上位机是否给你回,回了就证明打开了呗
suw12q 发表于 2024-3-27 16:11 | 显示全部楼层
你这个判断上位机端口是否打开?打开能下发数据吗?
lamanius 发表于 2024-3-28 08:17 | 显示全部楼层
上位机要是你写的话,估计可以吧,就是上位机打开之后,下发一下标记变量之类的
kaif2n9j 发表于 2024-3-28 09:22 | 显示全部楼层
好像没有这方面的通讯标记吧
w2nme1ai7 发表于 2024-3-28 10:30 | 显示全部楼层
这种标记没用过,不过你可以手动触发的吧
lix1yr 发表于 2024-3-28 12:31 | 显示全部楼层
其实你弄个按键也行,开完上位机之后,手动按键按一下,哈哈

wxg80620025 发表于 2024-4-26 11:27 | 显示全部楼层
小华单片机核心代理,15955131314
鹿鼎计 发表于 2024-4-28 17:58 | 显示全部楼层
应该是有个打开USB的回调,可以去看看
软核硬核 发表于 2024-4-28 18:31 | 显示全部楼层
可以看一下USB的寄存器,应该有这个状态寄存器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部