关于mscomm控件在中文windows下的通讯新题目和处理方法

关于mscomm控件在中文windows下的通讯新题目和处理方法

ID:22466399

大小:62.00 KB

页数:6页

时间:2018-10-29

关于mscomm控件在中文windows下的通讯新题目和处理方法_第1页
关于mscomm控件在中文windows下的通讯新题目和处理方法_第2页
关于mscomm控件在中文windows下的通讯新题目和处理方法_第3页
关于mscomm控件在中文windows下的通讯新题目和处理方法_第4页
关于mscomm控件在中文windows下的通讯新题目和处理方法_第5页
资源描述:

《关于mscomm控件在中文windows下的通讯新题目和处理方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、关于MSComm控件在中文Windows下的通讯新题目和处理方法摘要VB5.0/6.0的MSm通讯控件提供了一系列标准通讯命令的接口,它答应建立串口连接,但在实际通讯软件设计过程中,MSm控件并非像想像中那样完美和轻易控制,非凡是在中文sm控件串口通讯处理1.MSm控件的基础理论一般说来,计算机都有一个或多个串行端口,它们依次为1、2、...。这些串口还提供了外部设备和PC进行数据传输和通讯的通道,这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU。

2、再进一步说,在操纵系统方面,icrosoftmcontrol5.0组件,在窗体Form1中加进mand命令按钮并取名为cmdTest,MSm控件取名为MSm1,写进以下代码:PrivateSubcmdTest_Click()MSm1.mPort=1'设定1口IfMSm1.PortOpen=FalseThenMSm1.Settings="9600,N,8,1"'9600波特率,无校验,8位数据位,1位停止位MSm1.PortOpen=True'打开串口EndIfMSm1.OutBufferCount=0'清空发送缓冲区MSm1.InBufferCount=0'清空接

3、收缓冲区'发送字符数据,注重必须用回车符(vbCr)结束MSm1.Output="Thisisagoodbook!"%26amp;vbCr'拨打号码或发送AT命令MSm1.Output="ATDT0294563622"%26amp;vbCr'发送字符数组数据,注重ByteArray必须事先定义赋值DimByteArrayasbyte()'定义动态数组ReDimByteArray(1)'重定义数组大小ByteArray(0)=0ByteArray(1)=1MSm1.Output=ByteArray'发送字符数组数据EndSubPrivateSubMSm1_Onm()

4、SelectCaseMSm1.mEventCaseEvReceive'接收字符数据DimBufferAsVariantMSm1.InputLen=0'当InputMode属性值为0(文本模式)时,变量中含String型数据。'当InputMode属性值为1(二进制模式)时,变量中含Byte型数组数据。MSm1.InputMode=InputModeBinaryBuffer=MSm1.Input'接收二进制数据MSm1.InputMode=InputModeTextBuffer=MSm1.InputCaseelseEndSelectEndSub3.中文Sm32.OC

5、X中存在一个影响传输二进制数据的Bug。32位ultiplierAsLongReadTotalTimeoutConstantAsLongultiplierAsLongTIMEOUTS)AsLongDeclareFunctionGetmTimeoutsLib"Kernel32"(ByValhFileAsLong,_lpmTimeoutsAsMTIMEOUTS)AsLongDimtimeoutsAsMTIMEOUTSDimRetAsLongIfm1.PortOpen=FalseThenm1.PortOpen=TrueEndIf'打开串口后重新设定串口句柄Ret=Get

6、mTimeouts(m1.mID,timeouts)'Setsomedefaulttimeoutstimeouts.ReadIntervalTimeout=1timeouts.ReadTotalTimeoutMultiplier=1timeouts.ReadTotalTimeoutConstant=1timeouts.ultiplier=1timeouts.Sm1.Output=chr(i)Nexti希看在接收端得到预期的0-255之间的数据,结果却是:前129个数据接收正确,为0-128,后面127个数据为126个0和一个255。造成这种结果的原因在于中文yDa

7、ta(255)AsByteFori=0To255MyData(i)=iNextiMSm1.Output=MyDataDoDoEventsLoopUntilMSm1.OutBufferCount=0'接收过程PrivateSubMSm1_Onm()SelectCaseMSm1.mEventCaseEvReceiveDimBufferAsVariantMSm1.InputMode=InputModeBinaryMSm1.InputLen=0Buffer=MSm1.InputFori=LBound(Buffer)ToUBound(Buffer)Text1.Text=Bu

8、ffer(

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

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

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