设置CP340 的参数为ASCII DRIVER ,9600波特,8为数据位,无校验,使用9针串口线连接电脑及CP340,使用FB2 发送函数发送数据,RCV灯闪动,并且能触发TXD灯亮,说明发送成功(包含了校验过程了),但是上位机却接收不到数据.
上位机用VC写的,这是部分代码:
...//发送过程略去
VARIANT vResponse;
char *str;
str="";
int k=m_Mscomm.GetInBufferCount(); //读取PLC缓冲区命令
if(k>0)
{
vResponse=m_Mscomm.GetInput();
str=(char *)(unsigned char*)vResponse.parray->pvData;
str[k]='\0';
}
在单步调试状态下发现K=8,说明收到数据(下位机FB3中设置了发送8个字节)
但是用CMSCOMM的ONComm()事件,
void CTest340Dlg::OnOnCommMscomm1()
{
VARIANT vResponse;
char *str;
str="";
int k=0;
k=m_Mscomm.GetInBufferCount(); //读取PLC缓冲区命令
if(k>0)
{
vResponse=m_Mscomm.GetInput();
str=(char *)(unsigned char*)vResponse.parray->pvData;
str[k]='\0';
}
}
设置RTHreshold=1,发现并没有触发该事件,这又说明缓冲区没有字符,这是怎么回事,请各位指教!
我的EMAIL:eBeerlu@citiz.net