PrivateSub cmdSend_Click()Sub cmdSend_Click() '定义文件读写属性结构 Dim sa As SECURITY_ATTRIBUTES '定义串口状态结构 Dim typCommStat As COMSTAT '定义串口状态错误 Dim lngError AsLong '********打开串口******** Dim hCF AsLong hCF = CreateFile("COM4", _ GENERIC_READ Or GENERIC_WRITE, 0, sa, _ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL Or FILE_FLAG_OVERLAPPED, 0) Debug.Print "打开串口:"& hCF '********获取出错信息******** Dim errNum AsLong errNum = GetLastError() Debug.Print "出错信息:"& errNum '定义标志值 Dim flag AsLong '定义设备控制块 Dim typDCB As DCB '********获取设备控制块******** flag = GetCommState(hCF, typDCB) Debug.Print "获取串口DCB:"& flag typDCB.BaudRate =2500'定义波特率 typDCB.Parity = NOPARITY '无校验位 typDCB.ByteSize =8'数据位 typDCB.StopBits =0'停止位 0/1/2 = 1/1.5/2 '********设置串口参数******** flag = SetCommState(hCF, typDCB) Debug.Print "设置串口参数:"& flag '********设置缓冲区大小******** flag = SetupComm(hCF, 1024, 1024) 'Debug.Print "设置缓冲区:" & flag '********清空读写缓冲区******** flag = PurgeComm(hCF, PURGE_RXABORT Or PURGE_RXCLEAR Or PURGE_TXABORT Or PURGE_TXCLEAR) 'Debug.Print "强制清空缓冲区:" & flag '定义超时结构体 Dim typCommTimeouts As COMMTIMEOUTS typCommTimeouts.ReadIntervalTimeout =0'相邻两字节读取最大时间间隔(为0表示不使用该超时间隔) typCommTimeouts.ReadTotalTimeoutMultiplier =0'一个读操作的时间常数 typCommTimeouts.ReadTotalTimeoutConstant =0'读超时常数 typCommTimeouts.WriteTotalTimeoutMultiplier =&