您可以在这里快速查找:


 
您的位置: 编程学习 > C++/VC > 200602
文章分类

Java技术
2005: 03 04 05 06 07 08
09 10 11 12
2006: 01 02

Asp.net
2005: 07 08 09 10 11 12
2006: 01 02

VB编程
2006: 02

Asp编程
2005: 11 12
2006: 01 02

C++/VC
2005: 10 11 12
2006: 01 02

Delphi
2005: 12
2006: 01 02

其它

 本文章适合所有读者

Windows CE的串口通信

freasy

以前看了很多文档,知道Windows CE的串口如何操作,但是由于从来没有想过要用串口,也没有实际的作过。昨天有人需要用我们的开发板,而他们主要就是要用串口,我就写了一个程序,用来测试串口是否工作。记录下来,作为以后串口通信程序的起点。

 HANDLE hSer;
 hSer = CreateFile (TEXT ("COM1:"), GENERIC_READ | GENERIC_WRITE,

                   0, NULL, OPEN_EXISTING, 0, NULL);
 if(hSer == INVALID_HANDLE_VALUE)
 {
  MessageBox(L"CreateFailed",L"Failed");
  return;
 }

 int RC;
 DWORD cByte_send,cByte_written;
 char ch[20];
 cByte_send =  sizeof(ch);
 sprintf(ch,"test COM1 good!");
 RC=WriteFile(hSer,&ch,cByte_send,&cByte_written,NULL);
 WCHAR ret[10];
 wsprintf(ret,L"%d",cByte_written);
 if(RC)
 {
  MessageBox(L"Send Ok!");
  MessageBox(ret);
  CloseHandle(hSer);
  return;
 }

 wsprintf(ret,L"%d",GetLastError());
 MessageBox(ret);
 CloseHandle(hSer);

这部分程序实际上跟对WInCE下大部分流驱动程序的操作方法一样,首先用CreateFile打开该设备,然后用Writefile/ReadFile进行读写,最后用CloseHandle来关闭。该程序没有改变串口的配置信息,如果要修改,应该定义各DCB(Dirver control Block),然后使用GetCommState/SetCommState来进行读取和修改串口信息。实际上这个函数是对串口驱动IoControl的封装,如果你愿意,你也完全可以直接使用Iocontrol来进行^_^