【第一周周报】WINCE下串口通讯

 

1.WindowsCE 使用串口需要有串口驱动程序,一般由 BSP 实现
2WindowsCE 系统中驱动程序分为两种:内建设备驱动和 流接口驱动
3.流接口驱动程序是以设备管理器接受控制命令并且通过调用文件系统 API 处理相关应用程序 
   串口驱动即为流接口驱动的形式 设备名一般是 COMx 的形式

串口通讯编程:
1.打开和关闭串口
  打开串行端口API函数:
  HANDLE WINAPI CreateFile(
       LPCTSTR lpFileName,    //打开文件名 对串口而言 如TEXT("COM1:")
       DWORD dwDesiredAccess,   //访问模式( 读,写)
       DWORD dwShareMode,      //是否共享读写
       LPSECURITY_ATTRIBUTES lpSecurityAttributes,  //安全属性 一般选择缺省 NULL 
       DWORD dwCreationDisposition,  //对串口已经存在的设备 使用OPEN_EXISTING 表示打开已经存在的文件
       DWORD dwFlagsAndAttributes,  // 文件标志和属性
       HANDLE hTemplateFile );    //模板文件
   关闭串行端口API函数
   打开串口成功之后会返回一个有效地句柄值,调用CloseHandle函数关闭已经打开的串口
2.读写串行端口
   读串口API函数ReadFile:
   BOOL WINAPI ReadFile(
    HANDLE  hFile,   //文件句柄
    LPVOID  lpBuffer,  //接受数据的缓冲区的指针
    DWORD  nNumberOfBytesToRead,  //number of bytes to read
    LPDWORD  lpNumberOfBytesRead,  //point to number of bytes written
    LPOVERLAPPED  lpOverlapped        //pointer to structure for overlapped IO
);
举例:
int rc;
DWORD cBytes;
BYTE ch;
rc=ReadFile(hSer, &ch, 1, &cBytes, NULL);
   写串口函数 WriteFile:
  BOOL WINAPI WriteFile(
        HANDLE hFile,   //句柄
        LPCVOID lpBuffer,  //缓冲区指针
        DWORD nNumberOfBytesToWrite,   //number of bytes to write
        LPDWORD lpNumberOfBytesWritten,  //pointer to number of bytes written
        LPOVERLAPPED lpOverlapped );       //pointer to structure for overlapped IO
举例:
Int rc;
DWORD cBytes;
BYTE ch;
ch = TEXT(‘a’);
rc = WriteFile(hSer, &ch, 1, &cBytes, NULL);
3.配置串行端口
   读写操作之前应该正确配置串口工作状态 使用的API函数如下:
  BOOL GetCommState(HANDLE hFile, LPDCB lpDCB);
  BOOL SetCommState(HANDLE hRle, LPDCB lpDCB);
第一个参数是已经打开的函数的句柄,第二个参数是一个指针,指向DCB结构(查阅MSDN)
4.异步多线程通讯
 (未完待续)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值