vb---输入模式之文本输入与二进制输入区别
| 使用 VB6 MSCOMM 控件 进行二进制收发 | 发布时间:2012-01-10 12:12:01 |
| 技术类别:嵌入式 |
MSCOMM 控件是用于串口通信的,使用方便。在VB中,这个串口控件缺省是用于收发字符串的。在实际的控制应用场合经常需要使用二进制收发。在程序编制时注意以下内容。
1、设置串口
Dim temp As String
temp = Mid(Combo1.Text, 4)
MSComm1.CommPort = CDec(Mid(Combo1.Text, 4))
'MSComm1.InBufferCount = 0
MSComm1.InputLen = 64
MSComm1.SThreshold = 0 '一旦发送数据就触发OnComm()事件来检测是否返回数据
MSComm1.RThreshold = 3 '接收到1个字节数据就立即触发OnComm()事件
MSComm1.Settings = "115200,n,8,1"
MSComm1.InputMode = comInputModeBinary '这个地方要设置为输入binary模式
MSComm1.PortOpen = True
2、发送二进制数 可以定义一个Byte数组然后连接到output发送出去
Dim bytebuf(0 To 5) As Byte
bytebuf(0) = 1
bytebuf(1) = 13
bytebuf(2) = &H53
bytebuf(3) = &HAA
bytebuf(4) = &HEF
bytebuf(5) = &HFF
MSComm1.Output = bytebuf
3、接收二进制数 可以使用一个checkbox选择是十六进制还是文本型显示
Dim tempstr As Variant '定义一个Variant型的数,这个非常重要
Dim i As Integer
If MSComm1.InputLen <> 0 Then
tempstr = MSComm1.Input
For i = LBound(tempstr) To UBound(tempstr)
If Check1.Value = Checked Then
Text7.Text = Text7.Text + Hex(tempstr(i)) + " "
Else
Text7.Text = Text7.Text + Chr(tempstr(i))
End If
Next i
End If
附:查找机器上的可用串口 一般做法是读注册表 但这里使用穷举法
Dim i As Integer
Combo1.Clear
On Error Resume Next
For i = 1 To 100
MSComm1.CommPort = i
If (MSComm1.PortOpen = False) Then
MSComm1.PortOpen = True
End If
If (MSComm1.PortOpen) Then
Combo1.AddItem "com" + CStr(i)
MSComm1.PortOpen = False
End If
Next i
vb---输入模式之文本输入与二进制输入区别的更多相关文章
- (二)C语言文本流和二进制流的区别
转至:http://www.cnblogs.com/xiangzi888/archive/2011/11/10/2244336.html 一.首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名 ...
- C语言中的文本流与二进制流的区别
近期看到了文本流和二进制流的区别,书上讲的比较含糊,理解不透彻,于是细细琢磨了下,把心得跟大家分享一下: 一.首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名的存储区.比如 stdio.h ...
- C++二进制输入输出流接口设计
提到输入输出流,作为CPPer很自然的就会想到std::iostream,对于文本流的处理,iostream可以说足够强大,应付一般复杂度的需求毫无压力.对二进制流处理却只能用“简陋”来形容,悲催的是 ...
- Delphi中限制文本框(TEdit)只能输入数字
procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);var edt: TEdit; str, strL, strR: stri ...
- js控制文本框仅仅能输入中文、英文、数字与指定特殊符号
JS 控制文本框仅仅能输入数字 <input onkeyup="value=value.replace(/[^0-9]/g,'')"onpaste="value=v ...
- js统计文本框剩余可输入字数
js统计文本框剩余可输入字数 <html><head runat="server"> <title></title> <scr ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- 文本输入框input将输入转换为统一大小写
转载地址:http://blog.csdn.net/yieryi_/article/details/52078596 文本输入框input将输入转换为统一大小写,通常有两种方法:JS和CSS方法. 1 ...
- IO流-文本IO\读写二进制数据
文本IO 一.简述 OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读 ...
随机推荐
- Windows自带.NET Framework版本大全
The following is a complete list of which version of the .NET Framework is included in which version ...
- HTML之电话: 邮箱: 网址
<p> 电话: <a href="tel:电话">电话</a> </p> <p> 邮箱: <a href=&quo ...
- HTML实体符号代码速查表
1.特色的 © © © 版权标志 | | 竖线,常用作菜单或导航中的分隔符 · · · 圆点,有时被用来作为菜单分隔符 ↑ ↑ ↑ 上箭头,常用作网页“返回页面顶部”标识 € € € 欧元标识 ² ...
- 【译】RabbitMQ:发布-订阅(Publish/Subscribe)
在前一篇教程中,我们创建了一个工作队列,我们假设在工作队列后的每一个任务都只被调度给一个消费者.在这一部分,我们将做一些完全不一样的事情,调度同一条消息给多个消费者,也就是有名的“发布-订阅”模式.为 ...
- Coursera Machine Learning 作业答案脚本 分享在github上
Github地址:https://github.com/edward0130/Coursera-ML
- Android学习---通过内容提供者(ContentProvider)操作另外一个应用私有数据库的内容
一.什么是ContentProvider? ContentProvider直译过来就是内容提供者,主要作用就是A应用提供接口给B应用调用数据,和之前介绍的sharedPreference和直接开放文件 ...
- new(C# 参考)
在 C# 中,new 关键字可用作运算符.修饰符或约束. new 运算符 用于创建对象和调用构造函数. new 修饰符 用于隐藏基类中被继承的成员. new 约束 用于在泛型声明中约束可能用作类型参数 ...
- PHP从mysqli中获取的资源$result是不是不能while($row = $result->fetch_assoc())这样两次?【坑】
PHP从mysqli中获取的资源$result是不是不能while($row = $result->fetch_assoc())这样两次? 因为我这样做,结果后面的查询结果就无法显示了,目前尚不 ...
- jvm、jre、jdk
JVM和JRE浅谈 Java运行时环境JRE包含:Java虚拟机.库函数.运行Java应用程序和Applet所必须的文件,JDK(又称SDK)包含:JRE的超集.编译器.调试器等开发工具. java平 ...
- 关于delphi点击webbrowser中任意一点的问题
关于delphi点击webbrowser中任意一点的问题 有时候我们需要delphi载入webbrowser1打开网页的时候 需要点击某一个点的位置 可能是坐标 可能是按钮 可能是其他的控件应该如何来 ...