mscomm控件会不会自己发送一些数据?
最近在做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,好像不会出现这些错误。
背景:
上位: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,好像不会出现这些错误。
...全文
相关推荐
MSComm控件
win7 64位系统下安装的VS2010旗舰版没有MSComm控件,使用MFC编程时,工具箱中无法添加串口通信控件,所以需要自己安装一下MSComm控件。(包含安装说明)
使用MFC的MSCOMM串口控件,Teechar控件绘制曲线图
** 一、将串口接受到的数据保存在一个队列当中,然后再显示到折线图上。 ** 效果图: 二、实现步骤 1、创建一个空白的MFC对话框:
《MSComm控件小结》
一:在Visual C++ 6.0集成开发环境下,可以通过三种方法实现串口通信: 1)运用MFC函数进行编程实现串口通信 2)运用MSComm控件进行编程实现串口通信 3)运用VC++运行库函数实现串口通信 在这三种方法中,MSComm—( Microsoft Communication Control )控件因使用简便而广受应用,它是Microsoft公司出品的一种ActiveX 控件。控
WINCC注册MSCOMM控件
WINCC注册MSCOMM控件,WINCC串口通讯使用。
MsComm32 控件下载
包含MSCOMM32.OCX,MSCOMM32.DEP和mscomm.reg



