有个RThreshold属性,设置MSCOMM的每次接受到的字符个数
你可能将他设置为8了
所以发送的长度>8时一次OnOnCommMscomm事件读到的len总是8.而且数据是两次读出的.发送的长度<8时可一次读完
你可能将他设置为8了
所以发送的长度>8时一次OnOnCommMscomm事件读到的len总是8.而且数据是两次读出的.发送的长度<8时可一次读完
解决方案 »
- 请问怎么从一个hwnd得到这个窗口所在进程的名称和执行文件的路径
- 求类似3721插件的源代码?必有重谢!!!!!
- 关于如何在视图里面实现诸如 QQ 游戏大厅的游戏桌循环显示的方法
- 请教一个问题
- 问:如何添加背景音乐?该如何编码?(解答详细点更好)
- 大家来看看,一个很简单的问题,一起来讨论讨论!!!
- edit空间和spin控件一起用,如何spin设置了range,但因为edit可以输入大于range,如何处理?
- 大家好,我是一个VC的初学者。我想问一个比较初级的问题。
- 既然回调函数一般都写成全局函数,那我应该这样在全局函数里面往一个对话框类的编辑框里面写内容呢?
- VC技术交流群 44319642
- 请问一下浏览后如何保存XML页面
- 一个关于打包发布的简单问题,在线等待结账,100分
用文件操作,你想写多长都行。只要你在COMMTIMEOUTS里说明最长返回时间。
例如:COMMTIMEOUTS Timeout={0,0,2000,0,2000};
SetCommTimeouts(hCom,&Timeout);
然后,设定串口事件。
例如:SetCommMask(hCom,EV_RXCHAR);
最后在接受线程里,等待事件。
DWORD l=EV_RXCHAR;OVERLAPPED osRead;
if(WaitCommEvent(hCom,&l,&osRead))
{
if(l&EV_RXCHAR)
{
ResetEvent(osRead.hEvent);
ReadFile(hCom,MyRecive,strlen(MyStr),&index,&osRead);
if(index<strlen(MyStr))
{
ResetEvent(osRead.hEvent);
ReadFile(hCom,&MyRecive[index],strlen(MyStr)-index,&index,&osRead);
}
}
//其他操作。。
}
else
{
ClearCommError(hCom,NULL,NULL);
}
呵呵,一点愚见。