VB6使用API实现串口通信

VB6使用API实现串口通信

ID:46628256

大小:34.51 KB

页数:12页

时间:2019-11-26

VB6使用API实现串口通信_第1页
VB6使用API实现串口通信_第2页
VB6使用API实现串口通信_第3页
VB6使用API实现串口通信_第4页
VB6使用API实现串口通信_第5页
资源描述:

《VB6使用API实现串口通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、需要和客户的产品通讯,但波特率是非常规的,MScomm无法实现,原有的软件框架和条件又不能转用VC开发底层,于是用VB6调用API实现了这个通讯功能,虽然在VB6下这个程序还是单进程的,但实现了异步非阻塞的通信,性能相当稳定,下面是测试程序代码PrivateSubcmdSend_Click()SubcmdSend_Click()   '定义文件读写属性结构   DimsaAsSECURITY_ATTRIBUTES   '定义串口状态结构   DimtypCommStatAsCOMSTAT   '定义串口状态错误   DimlngErrorAsLong      '********打开串口*

2、*******   DimhCFAsLong   hCF=CreateFile("COM4",_                       GENERIC_READOrGENERIC_WRITE,0,sa,_                   OPEN_EXISTING,FILE_ATTRIBUTE_NORMALOrFILE_FLAG_OVERLAPPED,0)   Debug.Print"打开串口:"&hCF      '********获取出错信息********   DimerrNumAsLong   errNum=GetLastError()   Debug.Print"出错信

3、息:"&errNum      '定义标志值   DimflagAsLong              '定义设备控制块   DimtypDCBAsDCB      '********获取设备控制块********   flag=GetCommState(hCF,typDCB)   Debug.Print"获取串口DCB:"&flag      typDCB.BaudRate=2500    '定义波特率   typDCB.Parity=NOPARITY  '无校验位   typDCB.ByteSize=8       '数据位   typDCB.StopBits=0       '停止位

4、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_RXABORTOrPURGE_RXCLEAROrPURGE_TXABORTOrPURGE

5、_TXCLEAR)   'Debug.Print"强制清空缓冲区:"&flag      '定义超时结构体   DimtypCommTimeoutsAsCOMMTIMEOUTS   typCommTimeouts.ReadIntervalTimeout=0    '相邻两字节读取最大时间间隔(为0表示不使用该超时间隔)   typCommTimeouts.ReadTotalTimeoutMultiplier=0     '一个读操作的时间常数   typCommTimeouts.ReadTotalTimeoutConstant=0       '读超时常数   typCommTimeout

6、s.WriteTotalTimeoutMultiplier=0    '一个写操作的时间常数(为0表示不使用该超时间隔)   typCommTimeouts.WriteTotalTimeoutConstant=0      '写超时常数(为0表示不使用该超时间隔)          '********超时设置********   flag=SetCommTimeouts(hCF,typCommTimeouts)   'Debug.Print"超时设置:"&flag          '********发送数据********   '定义要发送字节数   DimlngNumberofByte

7、sToWriteAsLong   '定义实际发送字节数   DimlngNumberofBytesToWrittenAsLong   '定义重叠结构体   DimtypOverLappedAsOVERLAPPED      '定义发送数据   DimarrbytTest(0To23)AsByte   '载波收发器同步头   arrbytTest(0)=CByte(&H53)   arrbytTest(1)=CByte(&

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。