- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                不用MSCOMM控件怎样进行串口收发数据
                    不用MSCOMM控件怎样进行串口收发数据
Private Sub cmdSend_Click()
    定义文件读写属性结构
    Dim sa As SECURITY_ATTRIBUTES
    定义串口状态结构
    Dim typCommStat As COMSTAT
    定义串口状态错误
    Dim lngError As Long
    
    ********打开串口********
    Dim hCF As Long
    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 As Long
    errNum = GetLastError()
    Debug.Print 出错信息:  errNum
    
    定义标志值
    Dim flag As Long
            
    定义设备控制块
    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 = 0     一个写操作的时间常数(为0表示不使用该超时间隔)
    typCommTimeouts.WriteTotalTimeoutConstant = 0       写超时常数(为0表示不使用该超时间隔)
        
    ********超时设置********
    flag = SetCommTimeouts(hCF, typCommTimeouts)
    Debug.Print 超时设置:  flag
        
    ********发送数据********
    定义要发送字节数
    Dim lngNumberofBytesToWrite As Long
    定义实际发送字节数
    Dim lngNumberofBytesToWritten As Long
    定义重叠结构体
    Dim typOverLapped As OVERLAPPED
    
    定义发送数据
    Dim 
                
原创力文档
                        

文档评论(0)