首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于嵌入式Windows CE下串行通信的实现
来源:本站整理  作者:佚名  2011-08-25 14:57:42




  对串行端口来说,必须配置超时值,否则程序可能陷入到一个循环来等待来自串口的字符。这对采用Windows CE的设备来说,将大大减少设备电池的使用时间,所以超时值是需要配置的。另外一种解决办法就是采用多线程。多线程将在下一部分讲述。通常,配置超时值和配置串口类似。首先用GetCommTimeouts函数获得当前串口的超时值。然后可以修改COMMTIMEOUT成员,最后用SetCommTimeouts函数设定超时值。
  COMMTIMEOUTS CommTimeouts //定义COMMTIMEOUTS结构
  GetCommTimeouts(hPort,&CommTimeouts) //获得当前的超时值
  //修改COMMTIMEOUT成员
  CommTimeouts.ReadIntervalTimeout=MAXDWORD;
  CommTimeouts.ReadTotalTimeoutMultiplier=0;
  CommTimeouts.ReadTotalTimeoutConstant=0
        CommTimeouts.WriteTotalTimeoutConstant=1000

        CommTimeouts.WriteTotalTimeoutMultiplier=10

        SetCommTimeouts(hPort,&CommTimeouts)
//设定超时值
  (3)读写串行端口-用ReadFileWriteFile函数读写串行口。
  int rc;
  DWORD cBytes;
  BYTE ch;
  Rc=ReadFile(hPort,&ch,1,&cBytes,NULL);
  其中第一个参数是串口句柄,第2个参数是读回的字符,第3个参数是要读取的字符数量,第4个参数返回实际读取到的字符数量。
  Int rc
  DWORD cBytes
  BYTE ch=TEXT(“a”)
  Rc=WriteFile(hPort,&ch,1,&cBytes,NULL)
  其中第一个参数是串口句柄,第2个参数是要写入的字符,第3个参数是要写入的字符数量,第4个参数返回字符写入的字符数量。需要注意的是Windows CE不支持重叠I/O,所以如果在主线程进行大量读写串口操作时,有可能使整个程序陷入缓慢的串口等待中去,因此一般都采用多线程来进行读写串口操作。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:292,429.70000 毫秒