双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

mscomm控件会不会自己发送一些数据?

bubuxindong bubuxindong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在做usb转串口的上位和下位,遇到了一些问题。

背景:
上位:PC上调用mscomm控件,做一个串口的调用,并对串口进行一些读写操作。
下位:LPC1778的板子,作为usb device, CDC类。
板子与PC之间用usb连接,这样pc就能识别一个虚拟串口,供上位软件使用。


PC与板子之间能够通信,数据都能收发。但是有时候,板子会出现stall pid 错误,即PC发出一些错误的PID报文,板子无法识别。这样的话,板子usb device的0x82 IN端口就halt,停止工作了。PC继续给板子 usb device发送报文,板子能够接收到,但是就是进入不了0x82 IN中断(由于已经halt了)。报文见usblyzer 截图。

这里有两个问题:
1. mscomm会不会自己发送一些数据,而不是程序让他发送的?
比如mscomm会不会自己修复一些错误之类的。

2. 如果出现了这种错误,该如何修复?
已经试过GetLastError以及ClearCommError,因为GetLastError是获取函数中出现的返回错误,而PC的读取函数以及发送函数分别为GetInput和SendInput,好像不会出现这些错误。

...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
bubuxindong
ATL 3,248 成员 48,530 内容