搜索
bottom↓
回复: 8

用MSComm控件时,为什么GetCommEvent()的返回值为2时,表示接受缓冲区中有字符。

[复制链接]

出0入0汤圆

发表于 2011-12-11 10:39:32 | 显示全部楼层 |阅读模式
用MSComm控件时,为什么GetCommEvent()的返回值为2时,表示接受缓冲区中有字符。能返回其它值吗?等于其它的值不可以吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-12-11 10:59:43 | 显示全部楼层
这个函数是返回事件用的。Event就是事件的意思,一般都是枚举的。所以123456789之类的都有可能。当然可以是其他值,比如发送完毕,发生异常,都有不同的值。
具体看百度百科就有了。
多查资料吧。这些应该都是宏定义的,一大串字母。

出0入0汤圆

 楼主| 发表于 2011-12-11 11:07:35 | 显示全部楼层
回复【1楼】majianjia  阿嘉^_^
-----------------------------------------------------------------------
谢了,能具体告诉我查些什么资料吗?我是个初学者,完全的自学,关于MSComm控件相关的累,在MSDN里找不到,看了许多Visual C++方面的书,但是细节处还是讲不到位。

出0入0汤圆

发表于 2011-12-11 11:22:41 | 显示全部楼层
LZ,不是我说你,google baidu要会用,想问什么就先用关键词查一下,像这些用得比较多的控件和相关的错误这些网上都有的。
MSComm我也只是用过一次,也是初学者,电子和上位机也是自学,下面都是google和百度查“MSComm”或者“MSComm event”出来的

MSDN上的,
http://msdn.microsoft.com/en-us/library/aa457021

comEvSend         1         There are fewer than SThreshold number of characters in the transmit buffer.
comEvReceive         2         Received RThreshold number of characters. This event is generated continuously until you use the Input property to remove the data from the receive buffer.
comEvCTS         3         Change in Clear To Send line.
comEvDSR         4         Change in Data Set Ready line. This event is fired only when DSR changes from 1 to 0.
comEvCD         5         Change in carrier detect line.
comEvRing         6         Ring detected. Some universal asynchronous receiver-transmitters (UARTs) may not support this event.
comEvEOF         7         End Of File (ASCII character 26) character received.

你说的2,就是接受事件。 comEvReceive 这串字母你直接写在程序里也是代表个2,这些也许是头文件或者什么里面的宏定义或者枚举。所以你直接返回数值的话,看到的是2,而不是comEvReceive


以下转自CSND
http://topic.csdn.net/t/20021205/16/1234691.html

常数   值   描述  
comEventBreak   1001   接收到一个中断信号。  
comEventCTSTO   1002   Clear   To   Send   超时。在系统规定时间内传输一个字符时,Clear   To   Send   线为低电平。  
comEventDSRTO   1003   Data   Set   Ready   超时。在系统规定时间内传输一个字符时,Data   Set   Ready   线为低电平。  
comEventFrame   1004   帧错误。硬件检测到一帧错误。  
comEventOverrun   1006   端口超速。没有在下一个字符到达之前从硬件读取字符,该字符丢失。  
comEventCDTO   1007   载波检测超时。在系统规定时间内传输一个字符时,Carrier   Detect   线为低电平。Carrier   Detect   也称为   Receive   Line   Signal   Detect   (RLSD)。  
comEventRxOver   1008   接受缓冲区溢出。接收缓冲区没有空间。  
comEventRxParity   1009   奇偶校验。硬件检测到奇偶校验错误  
comEventTxFull   1010   传输缓冲区已满。传输字符时传输缓冲区已满  
comEventDCB   1011   检索端口的设备控制块   (DCB)   时的意外错误  


通讯事件包括下列设置值:

常数   值   描述  
comEvSend   1   在传输缓冲区中有比   Sthreshold   数少的字符。  
comEvReceive   2   收到   Rthreshold   个字符。该事件将持续产生直到用   Input   属性从接收缓冲区中删除数据。  
comEvCTS   3   Clear   To   Send   线的状态发生变化。  
comEvDSR   4   Data   Set   Ready   线的状态发生变化。该事件只在   DST   从   1   变到   0   时才发生。  
comEvCD   5   Carrier   Detect   线的状态发生变化。  
comEvRing   6   检测到振铃信号。一些   UART(通用异步接收—   传输)可能不支持该事件。  
comEvEOF   7   收到文件结束(ASCII   字符为   26)字符。   


这次我就给你全部贴出来了,但是建议你还是去上面两个网站看看。
论坛什么的,很多回帖都提到我们会有些意想不到的地方,查资料的时候往往会有意外收获。

说得有点过了,见谅...

出0入0汤圆

 楼主| 发表于 2011-12-11 12:30:54 | 显示全部楼层
回复【3楼】majianjia  阿嘉^_^
-----------------------------------------------------------------------
非常感谢

出85入85汤圆

发表于 2014-3-7 16:27:19 | 显示全部楼层
谢谢大师

出0入0汤圆

发表于 2014-11-20 15:56:58 | 显示全部楼层
majianjia 发表于 2011-12-11 11:22
LZ,不是我说你,google baidu要会用,想问什么就先用关键词查一下,像这些用得比较多的控件和相关的错误这 ...

大师啊 能请教你点VC6.0的问题吗 方便的话告诉我你的QQ行吗?

出0入0汤圆

发表于 2014-11-20 16:00:51 | 显示全部楼层
谢谢 楼主发如此好的帖子 方便告诉我QQ吗? 交流一下VC问题

出0入0汤圆

发表于 2014-11-20 16:08:58 | 显示全部楼层
别人网上搜一下,提供出来,马上就大师大师叫上了。别人也说只用了一次。
用点心吧!知识不能自己跑你脑子里去的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表