Chinaunix首页 | 论坛 | 博客
  • 博客访问: 454992
  • 博文数量: 724
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(724)

文章存档

2011年(1)

2008年(723)

我的朋友

分类:

2008-10-13 17:21:02

sander:作者的观点:
我的观点就是不要把串口通信封装成类。我不明白为什么有些人总要把串口封装成类呢
我是坚决不同意的。
数据的处理根本是不在这一层的。

另外我不知到为什么要每次
SetCommMask (hPort, EV_RXCHAR); ///重新设置要等待的信号
请告之。
(发表于2004-8-25 10:03:00)

fllsoft:可能是我的错!在此声明:我写的这个例子不是通用的。也不存在通用的。具体问题具体分析。关于SetCommMask请去询问微软。微软提供的文档中的例子中重新设置了SetCommMask。
(发表于2004-8-25 11:48:00)

fllsoft:另外这个网友所说的很有道理。他说用一个线程C专门处理接收的数据。而接收线程B在接收数据后把数据交由C处理。我强调我的方法不是最好的,只是一种方法。
(发表于2004-8-25 11:53:00)

liu_sir:SetCommMask (hPort, EV_RXCHAR);   ///只接收字符
WaitCommEvent(hPort, &dwCommStatus, 0);
SetCommMask (hPort, EV_RXCHAR); ///重新设置要等待的信号
--------------------------------------------------
感觉这样用WaitCommEvent监听com口事件是对的,可是有一点不明白,WaitCommEvent会同步等待,如果关闭串口的时候,如果解除等待,使线程返回?
(发表于2004-8-27 17:27:00)

fllsoft:如果终止读线程后程序就退出,那么可以用TerminateThead。如果终止读线程后程序不退出,那么就要破坏WaitCommEvent。可以按下列方法:设置等待事件掩码时加一项,如SetCommMask(hPort,EV_RXCHAR|EV_TXEMPTY),表示当输出字符都发送出去作为一个事件。那么我们可以发送任意一个字符,这个字符发送出去后WaitCommEvent就返回。还有一种方法,如果WaitCommEvent执行时,这时调用SetCommMask,那么WaitCommEvent会立即返回。大家可以试一试。
(发表于2004-8-27 20:26:00)

liu_sir:多谢fllsoft,终于明白了!
(发表于2004-8-31 8:55:00)

fllsoft:我现在是天极网嵌入式开发论坛的版主。大家有问题可以到这个论坛看看。
(发表于2005-1-6 14:38:00)

..........................................................................
--------------------next---------------------

阅读(258) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~