Visual Basic 2008 速成版 串口如何使用?
如题~~~上次进入官方网站想下载VB6.0 MSDN文件的.看到有免费体验版,就下载来学习一下,里面有很多例子,值得学习.
由于以前没学过VB,反正是初学,干脆就学新的算了,但是手上刚买来的书籍都是VB 6.0的,里面的串口实例自然也就无法拿来应用了.
在此请教各位朋友了!!
如果有像"串口的2-3脚连接就能实现的例子"就更好了~~
谢谢~~~~ 请多多赐教啊~~!~~朋友们~~~!~~~ 唉~~昨晚整了一个晚上还是没搞通...今晚仍将继续...
是不是都跑到雕刻机那里去了呀??没人理我的?? vb有2008版吗?
现在都是vb.net的 条件许可的情况下,切勿使用.NET开发工控软件 条件许可的情况下,切勿使用.NET开发工控软件 ? 什么意思? 上官方网站就知道有没有了呀,而且我都已经在用了,不用怀疑!
正因为是免费体验版的,下载来学习也不错呀 visual basic 2008 是vb.net 使用System.IO.Ports.SerialPort 搞定串口, 看看msdn 哈哈~~
谢谢 【7楼】 wanmyqawdr你的回复~~
System.IO.Ports.SerialPort 在msdm里我也看到了,按着msdm里面提供的例子也试过,发送时能看到板上的LED灯有闪,证明有发送,
但是还没有实现回送到电脑里来显示,应该是我没有搞定接收触发事件来打开串口
今晚还将继续... 订阅DataReceived事件,在事件处理函数里调用ReadExisting() 哦~~好的,非常感谢!!!我立刻试试~~
【9楼】 wanmyqawdr 你真的太可爱了... 哈哈~~再次感谢【9楼】 wanmyqawdr
还是那句话--->> 你真的太可爱了
成功啦!!!./emotion/em100.gif 我刚第一次成功编译linux内核!庆祝下,哈哈 哦~~是吧~~值得庆祝~~~ 我现在能发送也能回显了,不过我用的方法应该不对的,因为我不是利用接收触发事件来回显的,是直接发送以后就来个读指令来回显的
Public Class Form1
Public com1 As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1")
Sub SendSerialData(ByVal data As String)
' Send strings to a serial port.
com1.WriteLine(data)
TextBox1.Text &= com1.ReadLine()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SendSerialData("ByVal data As String")
End Sub
End Class 我没用过VB,不过你的思路我明白。你是在发送的同时接受数据,这样做虽然可以,但是有些“另类”了
SerialPort类提供了DataReceived事件,就是串口有数据到来是会触发DataReceived事件,你只要实现一个事件处理函数就行了,把ReadLine()放在事件处理函数里。
MSDN给出了这样的代码
Dim instance As SerialPort//定义了SerialPort对象
Dim handler As SerialDataReceivedEventHandler //定义一个事件处理函数
AddHandler instance.DataReceived, handler //把事件处理函数和DataRecieved事件关联起来
下边要做的就是实现handler,把ReadLine放在handler里 都赶潮流用2008了 Visual Basic 2008 速成版
学了这么多天,功能感觉很是强大,使用方法跟VB6.0 真的很不一样啊.在网上看了一下2005版本的,差不多,但我没学过2005版本的,
所以不知道有什么改动?在串口中断程序中直接将参数送显不行的,要用"委派"什么的.唉又得去买点书来看看了,不知道有没有2008版本
的?2005版本的又不知道是不是一样用?请老大们指点一下吧...谢谢 ~~~
功夫不负有心人,串口的2-3脚连接就能实现<发送-回显>的功能终于搞出来了.但还是对委派的使用还不是很了解,在这里有没有人能给我
解释一下呀??程序虽然是我写的,但也是这里搬一点那里搬一点,糊里糊涂就能实现了.有没有人帮我注释下每一行的功能的作用呀?
Imports System.IO
Imports System.Threading
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports System.IO.Ports
Imports System.Text
Public Class Form1
'Dim WithEvents RS232 As SerialPort
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RS232.Open()
RS232.ReceivedBytesThreshold = 1
txtSend.Select()
End Sub
Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived
If e.EventType <> SerialData.Chars Then Exit Sub
Dim inData As String = RS232.ReadExisting
DispalyText(inData)
End Sub
Private Sub DatSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DatSend.Click
RS232.WriteLine(txtSend.Text)
txtSend.Select()
End Sub
Delegate Sub SetTextCallback(ByVal InputString As String)
Private Sub DispalyText(ByVal comData As String)
If Me.txtReceive.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf DispalyText)
Me.Invoke(d, New Object() {comData})
Else
Me.txtReceive.Text = comData
End If
End Sub
End Class
页:
[1]