WINCE 串口发送数据收到接收数据事件
请教大家一个问题,我在做 WINCE 串口数据通讯的时候,
WriteFile(g_hPort,buf,dwCharToWrite,&dwBytesWritten,NULL);
后会收到一个字节数据 0xff
下面是我的接收函数,
DWORD WINAPI ReadPortThread(LPVOID lpvoid)
{
BOOL fReadState;
DWORD dwCommModemStatus;
DWORD dwLength;
COMSTAT ComStat;
DWORD dwErrorFlags;
while (g_hPort != INVALID_HANDLE_VALUE)
{
//等待串口的事件发生
WaitCommEvent (g_hPort, &dwCommModemStatus, 0);
if (dwCommModemStatus & EV_RXCHAR)
{
ClearCommError(g_hPort,&dwErrorFlags,&ComStat);
//cbInQue返回在串行驱动程序输入队列中的字符数
dwLength=ComStat.cbInQue;
if(dwLength>0)
{
//从串口读取数据
unsigned char * buf=new unsigned char[512];
fReadState=ReadFile(g_hPort,buf,dwLength,&dwLength,NULL);
if(!fReadState)
{
//不能从串口读取数据
MessageBox(NULL,TEXT("读取串口数据错误"),TEXT("读取串口数据"),MB_OK);
}
else
{
//把数据赋值给全局变量
g_TimerConter = 0 ;
memcpy(g_ReciverBuf+g_ReciverConter,buf,dwLength);
g_ReciverConter += dwLength ;
}
delete[] buf;
}
}
GetCommModemStatus (g_hPort, &dwCommModemStatus);
}
return 0;
}
不知道是什么原因,希望大家指点一二。
[解决办法]
牛奶哥,还继续wince啊?
哦哦哦,上次不是说准备换了嘛
你的这个应用程序我用过,没什么问题啊。
你这个收到oxff ,多半是你驱动有问题啊。你试试sunrain_hjb写的串口调试助手看看效果怎么样。
还有写这些软件最好参考win32 的例子来做,稳定性好会好一些。C#就更糟糕了。
[解决办法]