问答

汇集网友智慧,解决技术难题

21ic问答首页 - USB虚拟串口数据缓存问题

虚拟串口 USB 串口数据 软件 pc 串口软件

USB虚拟串口数据缓存问题

honests2021-10-11
大佬们,请问一下
USB虚拟串口在PC端软件未打开的时候发送了数据,导致PC机串口软件打开接收数据的时候,会将之前的数据一起接收,这该怎么解决。设备接到ubuntu,使用cat /dev/ttyACM0  能看到发送的数据;
有什么办法能够使USB设备检测PC端软件是否打开的方法吗。
用抓包软件发现串口软件打开,关闭的时候,有USB控制信号,但不知道怎么用。
求助
回答 +关注 1
2071人浏览 2人回答问题 分享 举报
2 个回答
  • 如果是USB虚拟串口,是可以检测到软件打开串口的。
    软件打开串口的时候,会发一系列的配置字,比如 SET_LINE_CODING 等,不是软件发送的,是虚拟串口驱动发送的,
    参考这个文章 https://bbs.21ic.com/icview-1652460-2-1.html 中的源码
    里面有一个 VCom_ReConfig 变量,在 main.c 和 usb_prop.c 文件中, 收到 SET_LINE_CODING 配置的时候 这个变量会自增变化,检测到这个变化就知道串口被打开了。
    https://bbs.21ic.com/icview-2582462-2-1.html
    https://bbs.21ic.com/icview-1652460-1-1.html
  • 同问

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