Keil C51实现单片机与PC usb通讯(上位机)vb如何编写

想编写一个c51与PCusb通讯利用vb如何编写,请说明需要了解哪方面的知识或提供可参考的源代码和操作步骤!解决后可追加高分!谢谢高手们。... 想编写一个 c51与PC usb通讯 利用vb如何编写,请说明需要了解哪方面的知识 或 提供可参考的源代码和操作步骤!
解决后可追加高分! 谢谢高手们。
展开
 我来答
hqd1992
2013-07-17 · TA获得超过107个赞
知道答主
回答量:43
采纳率:0%
帮助的人:40.9万
展开全部
我以前写过。我猜你说的用 USB 指的是 USB 转串口之后进行通信,USB是没法直接作为串口使用的。

你需要一个 PL2303 模块,我以前在淘宝上买过也就几块钱一个,线路连接是 RXD<--->TXD,这样硬件就连接完成了。

上位机编写方面,VB提供一个叫 MSComm 的控件,专门做串行通信的,你把她调出来自己看看属性也就知道怎么写了。没什么难度。

希望对你有帮助。
执子之手xw
2013-07-17 · TA获得超过244个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:154万
展开全部

IAP15F2K61S2的芯片可以直接与计算机通信,KEIL可以控制,使用STC提供的下载软件就可以了。

串口通信或CH341转一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰冰love爽爽
2013-07-17 · TA获得超过261个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:102万
展开全部
Imports System
Imports System.IO.Ports

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'获取计算机有效串口
Dim ports As String() = SerialPort.GetPortNames() '必须用命名空间,用SerialPort,获取计算机的有效串口
Dim port As String
For Each port In ports
portnamebox.Items.Add(port) '向combobox中添加项
Next port
'初始化界面
baudratebox.SelectedIndex() = 2
portnamebox.SelectedIndex() = 0
Serial_Port1() '初始化串口
Label3.Text = SerialPort1.IsOpen
statuslabel.Text = "串口未连接"
statuslabel.ForeColor = Color.Red
sendbox.Text = "123"
' baudratebox.Text = baudratebox.Items(0) 注释和不注释的地方可以替换
'portnamebox.Text = portnamebox.Items(0)
End Sub

Private Sub Serial_Port1() '设置串口参数
SerialPort1.BaudRate = Val(baudratebox.Text) '波特率
SerialPort1.PortName = portnamebox.Text '串口名称
SerialPort1.DataBits = 8 '数据位
SerialPort1.StopBits = IO.Ports.StopBits.One '停止位
SerialPort1.Parity = IO.Ports.Parity.None '校验位
End Sub

'关闭串口连接
Private Sub closebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closebtn.Click
Try
SerialPort1.Close() '关闭串口
Label3.Text = SerialPort1.IsOpen
If SerialPort1.IsOpen = False Then
statuslabel.Text = "串口未连接"
statuslabel.ForeColor = Color.Red
receivebox.Text = ""
receivebytes.Text = ""
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

'打开串口连接
Private Sub openbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openbtn.Click
Try
SerialPort1.Open() '打开串口
Label3.Text = SerialPort1.IsOpen
If SerialPort1.IsOpen = True Then
statuslabel.Text = "串口已连接"
statuslabel.ForeColor = Color.Green
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

'发送数据
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
SerialPort1.Write(sendbox.Text)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

'触发接收事件
Public Sub Sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Me.Invoke(New EventHandler(AddressOf Sp_Receiving)) '调用接收数据函数
End Sub

'接收数据
Private Sub Sp_Receiving(ByVal sender As Object, ByVal e As EventArgs)
Dim strIncoming As String
Try
receivebytes.Text = Str(Val(receivebytes.Text) + SerialPort1.BytesToRead)
If SerialPort1.BytesToRead > 0 Then
Threading.Thread.Sleep(100) '添加的延时
strIncoming = SerialPort1.ReadExisting.ToString '读取缓冲区中的数据
SerialPort1.DiscardInBuffer()
receivebox.Text = strIncoming
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

串口通讯的,编程环境, vb.net
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式