VC学习:Windows CE下的串口通讯类(4)
fWriteState=WriteFile(hPort,buf,dwCharToWrite*sizeof (TCHAR),&dwBytesWritten,NULL);
if(!fWriteState)
{
//不能写数据
MessageBox(NULL,TEXT("Can't Write String to Comm"),TEXT("Error"),MB_OK);
dwBytesWritten=0;
}
return dwBytesWritten;
}
DWORD WINAPI ReadPortThread(LPVOID lpvoid)
{
BOOL fReadState;
DWORD dwCommModemStatus;
DWORD dwLength;
COMSTAT ComStat;
DWORD dwErrorFlags;
while (hPort != INVALID_HANDLE_VALUE)
{
//等待串口的事件发生
WaitCommEvent (hPort, &dwCommModemStatus, 0);
if (dwCommModemStatus & EV_RXCHAR)
{
ClearCommError(hPort,&dwErrorFlags,&ComStat);
//cbInQue返回在串行驱动程序输入队列中的字符数
dwLength=ComStat.cbInQue;
if(dwLength>0)
{
//从串口读取数据
TCHAR* buf=new TCHAR[256];
fReadState=ReadFile(hPort,buf,dwLength,&dwLength,NULL);
if(!fReadState)
{
//不能从串口读取数据
MessageBox(NULL,TEXT("Error in read from serial port"),TEXT("Read Error"),MB_OK);
}
else
{
- 上一篇:VC++高级学习:监视服务器端口
- 下一篇:VC学习:IP地址控件小技巧