您的位置:首页 > 其它

wince下比较好用的串口接收线程

2013-07-23 18:54 148 查看
CCESeries *ceSeries = (CCESeries*)lparam;

DWORD    evtMask;
BYTE * readBuf = NULL;//读取的字节

DWORD actualReadLen=0;//实际读取的字节数

DWORD willReadLen;

DWORD dwReadErrors;
COMSTAT    cmState;

// 清空缓冲,并检查串口是否打开。

ASSERT(ceSeries->m_hComm !=INVALID_HANDLE_VALUE);

//清空串口

PurgeComm(ceSeries->m_hComm, PURGE_RXCLEAR | PURGE_TXCLEAR );

SetCommMask (ceSeries->m_hComm, EV_RXCHAR | EV_CTS | EV_DSR );
while (TRUE)
{
if (WaitCommEvent(ceSeries->m_hComm,&evtMask,0))
{
SetCommMask (ceSeries->m_hComm, EV_RXCHAR | EV_CTS | EV_DSR );
//表示串口收到字符

if (evtMask & EV_RXCHAR)
{

ClearCommError(ceSeries->m_hComm,&dwReadErrors,&cmState);
willReadLen = cmState.cbInQue ;
if (willReadLen <= 0)
{
continue;
}

readBuf = new BYTE[willReadLen];
ReadFile(ceSeries->m_hComm, readBuf, willReadLen, &actualReadLen,0);

//如果读取的数据大于0,

if (actualReadLen>0)
{
//触发读取回调函数

ceSeries->m_OnSeriesRead(ceSeries->m_pPortOwner,readBuf,actualReadLen);
}
}
}
//如果收到读线程退出信号,则退出线程

if (WaitForSingleObject(ceSeries->m_hReadCloseEvent,500) == WAIT_OBJECT_0)
{
break;
}
}
return 0;
阅读(1265) | 评论(0) | 转发(0) |

0
上一篇:wince下INI的操作更新

下一篇:短信PDU模式解码

相关热门文章

HAProxy体系指导(一)

UML建模中创建活动图

郑州治疗宫颈炎哪家医院好?...

卡酷蓓尔韩版童装风格时尚新颖...

读硕士打CBA两不误 曾令旭:退...

10种启动故障解决方法(转)...

关于自动弹出网页的解决方法...

Auto CAD 2007中文版 迅雷免费...

出现“high definition audio...

全国计算机一级考试试题...

如何编写一个C程序实现将字符...

C程序能不能在main函数之前调...

看一个程序调用了哪些动态库用...

回复不了你啊,咋,威望值不够...

mysql的medium.cnf在哪里?...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: