步驟1:創(chuàng)建一個(gè)新的VisualStudio項(xiàng)目。
選擇 新項(xiàng)目。.. 》》 Visual Basic 》 Windows窗體應(yīng)用程序。
鍵入一些名稱,然后單擊 確定。
》
步驟2:調(diào)整表單大小。
抓住一個(gè)角并調(diào)整大小,例如,在圖片里。
步驟3:更改背景色。
要使所有內(nèi)容美觀,請(qǐng)?jiān)趯傩灾胁藛?,?BackColor 更改為 Window 。
步驟4:添加4個(gè)組件。
添加:
1x GroupBox
1x ComboBox
2x按鈕
在這些組件中鍵入任何名稱和文本,但是在編程時(shí)請(qǐng)小心!
步驟5:添加SerialPort-Module
在工具窗口中,添加一個(gè)名為 SerialPort 的組件。
步驟6:雙擊表單。
您將看到,將打開(kāi)一個(gè)新選項(xiàng)卡。
第7步:添加一些代碼。
將以下代碼添加到項(xiàng)目中像上面的圖片一樣。
For Each AvailableSerialPorts As String In SerialPort1.GetPortNames()
ComboBox_AvailableSerialPorts.Items.Add(AvailableSerialPorts)
SerialPort1.ReadTimeout = 2000
Button_Connect.Visible = True
Button_Disconnect.Visible = False
Next
請(qǐng)確保將其放入我們通過(guò)雙擊窗體創(chuàng)建的Private Sub-Loop中。
確保為組件選擇正確的名稱。
步驟8:雙擊連接按鈕
雙擊在連接按鈕上。您會(huì)看到,您將在代碼中添加一個(gè)新的 Private Sub -循環(huán)。
在上圖中,我們添加的每個(gè)新代碼都將標(biāo)記為藍(lán)色。
第9步:添加兩行代碼。
在您的 Private Sub 中添加以下兩行代碼-您的 Connect -Button循環(huán)。
SerialPort1.BaudRate = “9600”
SerialPort1.PortName = ComboBox_AvailableSerialPorts.SelectedItem
并且像往常一樣,不要忘記為組件選擇正確的名稱。
步驟10:添加另一行代碼。
在表單的Private Sub-Loop內(nèi),添加以下代碼:
ComboBox_AvailableSerialPorts.Text = AvailableSerialPorts
這可以防止用戶在未選擇端口的情況下連接到串行端口。它總是選擇最后一個(gè)可用的串行端口,但是當(dāng)我們完成操作后,您將在以后看到它。
步驟11:添加2行。
為連接-按鈕指示您專用子,添加以下代碼行:
Button_Connect.Visible = False
Button_Disconnect.Visible = True
第12步:添加IF語(yǔ)句。
在您的私有子內(nèi)部-再次循環(huán)顯示連接按鈕 》,添加 if語(yǔ)句。
If SerialPort1.IsOpen = False Then
SerialPort1.Open()
End If
此語(yǔ)句將打開(kāi)串行端口。但是,僅當(dāng)尚未連接時(shí)。
步驟13:雙擊“斷開(kāi)連接”按鈕。
VisualBasic將自動(dòng)添加這些新的代碼行。
第14步:設(shè)置“斷開(kāi)連接”按鈕。
在您的私人子區(qū)域-為 Disconnect-Button 循環(huán),添加以下代碼:
If SerialPort1.IsOpen = True Then
SerialPort1.Close()
End If
Button_Connect.Visible = True
Button_Disconnect.Visible = False
這只會(huì)關(guān)閉SerialPort(如果已打開(kāi))。
此外,它啟用了“連接按鈕”并再次禁用了“斷開(kāi)按鈕”,以便您可以再次連接到另一個(gè)或相同的串行端口。
第15步:添加文本框。
添加文本框,然后在屬性菜單下,更改多行更改為 True 。
步驟16:添加計(jì)時(shí)器
工具-菜單,添加一個(gè)名為 Timer 的模塊。
步驟17:更改計(jì)時(shí)器間隔。
在屬性》》間隔下,將間隔更改為 100 ,因此它每100毫秒滴答一次。
步驟18:添加另一行代碼。
讓我們進(jìn)入 Private Sub (內(nèi)部)-為您的 Form循環(huán),并添加一行代碼:
TextBox_ReceivedMessage.ScrollBars = ScrollBars.Vertical
在這一行中,我們向您的TextBox添加了一個(gè)滾動(dòng)條,以便您查看全部
步驟19:?jiǎn)⒂煤徒糜?jì)時(shí)器
在私有下Sub -循環(huán)顯示 Connect -按鈕,啟用計(jì)時(shí)器:
Timer1.Enabled = True
并在 Private Sub 下-循環(huán)對(duì)于斷開(kāi)連接-按鈕,禁用計(jì)時(shí)器:
Timer1.Enabled = False
步驟20:雙擊計(jì)時(shí)器并添加一些代碼。
雙擊 計(jì)時(shí)器,并將以下代碼添加到您的私人子中-循環(huán)計(jì)時(shí)器:
If SerialPort1.IsOpen = True Then
Dim ReceivedMessage As String
ReceivedMessage = SerialPort1.ReadLine
TextBox_ReceivedMessage.Text = TextBox_ReceivedMessage.Text + ReceivedMessage + Environment.NewLine
TextBox_ReceivedMessage.SelectionStart = TextBox_ReceivedMessage.Length
TextBox_ReceivedMessage.ScrollToCaret()
End If
首先,我們檢查SerialPort是否打開(kāi)。如果是這樣,我們將創(chuàng)建一個(gè)名為ReceivedMessage的新字符串,其中包含來(lái)自串行端口的消息。
然后,將文本添加到TextBox。來(lái)自TextBox的舊文本應(yīng)保留在此處,添加來(lái)自String的內(nèi)容,并將創(chuàng)建新行。
最后,TextBox將自動(dòng)滾動(dòng)最新的輸入,因此我們將始終
步驟21:打開(kāi)您的杰作。
打開(kāi)在VisualStudio的右上角,單擊開(kāi)始 [或綠色的播放按鈕] 以啟動(dòng)程序。
但是請(qǐng)不要
步驟22:給串行設(shè)備做點(diǎn)事情。
我使用Arduino UNO。
像上面的圖片一樣對(duì)它進(jìn)行編程。
我在codebender.cc中做到了,但是您也可以在Arduino IDE或任何其他IDE中做到這一點(diǎn)。
!! 小心!請(qǐng)勿將延遲更改為大于100毫秒的任何數(shù)字。如果這樣做,則必須在中更改計(jì)時(shí)器的 Interval 當(dāng)然,VisualStudio !
但是,在Arduino內(nèi)部,您可以鍵入任何小于100的數(shù)字,而無(wú)需更改VisualStudio中的間隔。
表示: Visual Studio中的計(jì)時(shí)器的時(shí)間間隔不得低于Arduino的延遲。但是允許更高。
而且:除以下端口外,請(qǐng)勿連接到任何其他串行端口到您的Arduino,或完全刪除或取消計(jì)時(shí)器的私有子。但是,如果這樣做,您將無(wú)法再接收任何SerialData。
因?yàn)槿绻鸖erialPort-Module無(wú)法從SerialPort讀取任何數(shù)據(jù),則程序?qū)⑦M(jìn)入運(yùn)行時(shí)異常。
p》
如果這樣做,只需關(guān)閉程序,然后再次打開(kāi)它,然后連接到正確的串行端口。
當(dāng)然,如果愿意,可以防止此錯(cuò)誤(例如
幾天后,我將為VisualStudio和Arduino之間的高級(jí)串行通信創(chuàng)建另一個(gè)教程。
第23步:繼續(xù)并測(cè)試您的程序。
對(duì)其進(jìn)行測(cè)試,并在必要時(shí)添加一些代碼行或刪除一些代碼
責(zé)任編輯:wv
-
軟件
+關(guān)注
關(guān)注
69文章
4999瀏覽量
87890 -
VisualBasic
+關(guān)注
關(guān)注
0文章
6瀏覽量
6719
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論