VB实现串口通信,可接收R、G、B的值,并显示相应颜色~~急求程序~~

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-26
vb串口通信程序

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "115200,N,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
'MSComm1.SThreshold = 6
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 0
Text2 = ""
End Sub
Private Sub Command1_Click()
Dim fs(1 To 6) As Byte
Dim i As Integer
fs(1) = &HF5
For i = 0 To 3
fs(i + 2) = Val("&h" & Text1(i).Text)
Next
fs(i + 2) = &HFA
MSComm1.Output = fs
End Sub
Private Sub MSComm1_OnComm()
Dim js() As Byte
Dim i As Integer
Select Case MSComm1.CommEvent
Case 2
js = MSComm1.Input
For i = 0 To UBound(js)
Text2.Text = Text2.Text & Right("0" & Hex(js(i)), 2) & " "
Next i
Text2.Text = Text2.Text & vbCrLf
End Select
End Sub

vb里用MSComm控件可以串口通信,至于rgb颜色值你可以整理一个数组发送出去。并用API函数GetPixel和SetPixel来设置和获取颜色值。

假设有一张10×10的图
picture1.picture = loadpicture("c:\test.bmp")

把图片转换成颜色数组
Dim pic() As Long,i As Long
for h=0 to 9
for w=0 to 9
clr = GetPixel (Picture1.hDC,w,h)
redim preserve pic(i)
pic(i) = clr
i = i + 1
next w
next h

用MSComm控件发送数据
MsComm1.Output "picstart,9,9" '告诉串口接收方开始收图片,宽和高都是9
for i=0 to ubound(pic)
MsComm1.Output pic(i)
next i
MSComm1.Output "picend" '告诉串口接收方发送完成

接收方收到后根据图片的宽和高把一维数组转成二维数组,并用 SetPixel这个函数显示出来即可
For h=0 To 9
For w=0 To 9
SetPixel Picture2.hDC,w,h,pic(i)
i=i+1
Next w
Next h

  • vb串口通信如何接收单片机发过来的两字节数据
    答:如果两字节数据是字符数据需要设置InputMode 属性为comInputModeText。RThreshold 属性,在 MSComm 控件设置 CommEvent 属性为 comEvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。OnComm 事件,无论何时当 CommEvent 属性的值变化时,就产生 OnComm 事件,标志发生了一个通讯事件或一个错误。...
  • VB串口通信
    答:MSComm1.RThreshold = 1 ' 接收缓冲区每接收到一字节数据时,触发OnComm事件 MSComm1.PortOpen = True '打开串口 If MSComm1.PortOpen = True Then txtstatus.Text = "STATUS:" & cboport.Text & " OPEND," & cbobps.Text & "," & Left(CboParity.Text, 1) & "," & Cbobit...
  • 求助VB大神关于串口通信!!!
    答:MSComm 控件示例下面这个简单的例子演示了用调制解调器进行基本的串行通讯:Private Sub Form_Load ()' 保存输入子串的缓冲区 Dim Instring As String ' 使用 COM1。MSComm1.CommPort = 1 ' 9600 波特,无奇偶校验,8 位数据,一个停止位。MSComm1.Settings = "9600,N,8,1" ' 当输入...
  • VB怎么通过串口收发数据,谢谢,我是新手,希望能附上代码,感激
    答:VB里面有串口控件MSComm。 使用比较简单的。提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。1.MSComm控件两种处理通讯的方式 MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多...
  • vb 串口编程
    答:任何利用串口进行收发的程序,都可以利用将单个RS232口自身2与3脚短接,实现自发自收进行代码调试。新建VB工程,由工程菜单选部件项,在Microsoft Comm Control 6.0部件前打钩确定,VB的工具箱中就有MSCOMM控件,添加到窗体.Private Sub cmdSend_Click()Dim strSend As String strSend = Text2 MSComm1....
  • vb串口通讯
    答:1、你去查一下senddata定义的数据类型。最大收发数,由数据类型来限制。2、应该是使用socket对像的getdata与senddata方法来完成。你最好写两个程序,一个服务端,一个客户端。这样服务器端监听,客户端联接。两者握手联接后,就可以通信了。
  • 怎样用VB实现RS232接口通信
    答:VB可以使用MsComm控件来实现串口通信。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm 控件提供下列两种处理通讯的方式:事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (...
  • VBA 串口通讯问题
    答:1 mscomm.vbx通信控件描述 mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信。若toolbox中无此控件,则用tools的custom controls 将mscomm.vbx从windows的system子目录中加入vb的toolbox中。 1.1 通信方式 mscomm.vbx有2种不同的方式来处理和解决各类通信软件的开发和设计问题 ...
  • VB串口接收
    答:Private Sub MSComm1_OnComm()Rec = StrReverse(MSComm1.Input)i = InStr(Rec, "G")If i <> 0 Then Resp = Mid(Rec, i + 1, 6): GoTo aaa j = InStr(Rec, "M")If j <> 0 Then Resp = Mid(Rec, j + 1, 6)aaa:Label1.Caption = Val(StrReverse(Resp))end sub ...
  • VB串口通信接收的处理???帮忙啊 谢谢
    答:新建VB工程,由工程菜单选部件项,在Microsoft Comm Control 6.0部件前打钩确定,VB的工具箱中就有MSCOMM控件,添加到窗体.下列代码可按2进制接收数据,处理为16进制字符串显示数据.Option Explicit Dim inData As String Dim a() As Byte Private Sub Form_Load()MSComm1.Settings = "9600,n,8,1"MSC...