用MSComm控件时,为什么GetCommEvent()的返回值为2时,表示接受缓冲区中有字符。
用MSComm控件时,为什么GetCommEvent()的返回值为2时,表示接受缓冲区中有字符。能返回其它值吗?等于其它的值不可以吗? 这个函数是返回事件用的。Event就是事件的意思,一般都是枚举的。所以123456789之类的都有可能。当然可以是其他值,比如发送完毕,发生异常,都有不同的值。具体看百度百科就有了。
多查资料吧。这些应该都是宏定义的,一大串字母。 回复【1楼】majianjia阿嘉^_^
-----------------------------------------------------------------------
谢了,能具体告诉我查些什么资料吗?我是个初学者,完全的自学,关于MSComm控件相关的累,在MSDN里找不到,看了许多Visual C++方面的书,但是细节处还是讲不到位。 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)字符。
这次我就给你全部贴出来了,但是建议你还是去上面两个网站看看。
论坛什么的,很多回帖都提到我们会有些意想不到的地方,查资料的时候往往会有意外收获。
说得有点过了,见谅... 回复【3楼】majianjia阿嘉^_^
-----------------------------------------------------------------------
非常感谢 谢谢大师 majianjia 发表于 2011-12-11 11:22
LZ,不是我说你,google baidu要会用,想问什么就先用关键词查一下,像这些用得比较多的控件和相关的错误这 ...
大师啊 能请教你点VC6.0的问题吗 方便的话告诉我你的QQ行吗? 谢谢 楼主发如此好的帖子 方便告诉我QQ吗? 交流一下VC问题 别人网上搜一下,提供出来,马上就大师大师叫上了。别人也说只用了一次。
用点心吧!知识不能自己跑你脑子里去的。
页:
[1]