首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-08-22 
WINCE 串口发送数据收到接收数据事件请教大家一个问题,我在做 WINCE 串口数据通讯的时候,WriteFile(g_hPor

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#就更糟糕了。

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

热点排行