Sample: MsComm comm1
comm1.outputΚ″ATQOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem
1.串口初始化、设置程序 在程序初始化时,先对串口初始化。因为使用RTS/CTS握手信号的硬件设备只有
RTS信号置为高才能接收数据,所以需将MSCOMM通信控件的RTSenable属性设为
TRUE。由于Modem在处于命令状态时,通过串口发送的命令以及命令结果均会回显
在输入缓冲区中,因此在进入在线状态前,禁止产生EV-RECEIVE事件,避免数据
误处理。 由于Windows是多任务系统,在进行数据收发循环处理时,应调用DOEVENTS事件,
将控制权交还系统,允许Windows执行其他任务。但应注意,在处理OnComm事件时
小心使用DOEVENTS,避免系统又产生OnComm事件,造成嵌套,出现堆栈溢出错
误。 Sub Form-Load() comm1.CommportΚ1′COM1口通信 comm1.SettingsΚ″9600,N,8,1″′波特率9600,无校验,8位数据位1位停
止位 comm1.OutBufferSizeΚOUTPACK′设置输出缓冲区大小 comm1.InBufferSizeΚINPACK′设置输入缓冲区大小 comm1.InputLenΚ1′每次从输入缓冲区中取一个字符 comm1.RTSenableΚ-1′RTS信号为高 comm1.RthresholdΚ0′不产生MSCOMM-EV-RECEIVE事件 comm1.PortOpenΚ-1′打开串口 cdΚcomm1.CDHolding′取载波检测信号线原始状态 comm1.outputΚ″ATQOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem Do DoEventsLoopUntilcomm1.OutBufferCountΚ0 End Sub
comm1.outputΚ″ATQOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem
1.串口初始化、设置程序 在程序初始化时,先对串口初始化。因为使用RTS/CTS握手信号的硬件设备只有
RTS信号置为高才能接收数据,所以需将MSCOMM通信控件的RTSenable属性设为
TRUE。由于Modem在处于命令状态时,通过串口发送的命令以及命令结果均会回显
在输入缓冲区中,因此在进入在线状态前,禁止产生EV-RECEIVE事件,避免数据
误处理。 由于Windows是多任务系统,在进行数据收发循环处理时,应调用DOEVENTS事件,
将控制权交还系统,允许Windows执行其他任务。但应注意,在处理OnComm事件时
小心使用DOEVENTS,避免系统又产生OnComm事件,造成嵌套,出现堆栈溢出错
误。 Sub Form-Load() comm1.CommportΚ1′COM1口通信 comm1.SettingsΚ″9600,N,8,1″′波特率9600,无校验,8位数据位1位停
止位 comm1.OutBufferSizeΚOUTPACK′设置输出缓冲区大小 comm1.InBufferSizeΚINPACK′设置输入缓冲区大小 comm1.InputLenΚ1′每次从输入缓冲区中取一个字符 comm1.RTSenableΚ-1′RTS信号为高 comm1.RthresholdΚ0′不产生MSCOMM-EV-RECEIVE事件 comm1.PortOpenΚ-1′打开串口 cdΚcomm1.CDHolding′取载波检测信号线原始状态 comm1.outputΚ″ATQOV1WOSOΚ1&C1&D2&YOWO″′初始化Modem Do DoEventsLoopUntilcomm1.OutBufferCountΚ0 End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货