xshun 发表于 2024-2-18 17:21

HC32F460 怎么判断CDC USB串口已经打开

大家好,我目前开发的产品中有基于HC32F460的USB CDC 串口的使用,在测试时碰到以下问题,当USB 在电脑上虚拟出的UCB CDC串口没有打开时,MCU主动发送的数据发送不成功,发送状态USB_Tx_State 也一直清不掉,正常该状态是在发送完成中断里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]
查看完整版本: HC32F460 怎么判断CDC USB串口已经打开