USB虚拟串口数据缓存问题

[复制链接]
 楼主| honests 发表于 2021-10-11 17:57 | 显示全部楼层 |阅读模式
大佬们,请问一下
USB虚拟串口在PC端软件未打开的时候发送了数据,导致PC机串口软件打开接收数据的时候,会将之前的数据一起接收,这该怎么解决。设备接到ubuntu,使用cat /dev/ttyACM0  能看到发送的数据;
有什么办法能够使USB设备检测PC端软件是否打开的方法吗。
用抓包软件发现串口软件打开,关闭的时候,有USB控制信号,但不知道怎么用。
求助
地瓜patch 发表于 2021-10-11 22:51 来自手机 | 显示全部楼层
同问
QuakeGod 发表于 2021-10-12 13:28 | 显示全部楼层
如果是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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

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