读书人

WINCE 串口发送数据收到接收数据事件解

发布时间: 2012-08-22 09:50:35 作者: rapoo

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#就更糟糕了。
[解决办法]

探讨

牛奶哥,还继续wince啊?


哦哦哦,上次不是说准备换了嘛

你的这个应用程序我用过,没什么问题啊。

你这个收到oxff ,多半是你驱动有问题啊。你试试sunrain_hjb写的串口调试助手看看效果怎么样。
还有写这些软件最好参考win32 的例子来做,稳定性好会好一些。C#就更糟糕了。

[解决办法]
你查看下设置,是不是用了软件流控或者硬件流控之类的设置!或者是设备的原因!
[解决办法]
是不是串口配置问题 看看延迟参数

读书人网 >WinCE

热点推荐