通讯埠专题实验_第1页
通讯埠专题实验_第2页
通讯埠专题实验_第3页
通讯埠专题实验_第4页
通讯埠专题实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、通訊埠專題實驗1. 迴路測試:p3-23 LoopTest2. 迴路測試-使用SerialPort控制項:p3-33 LoopTest23. 數位輸出:p3-37 comDO4. 數位輸入:p3-47 PinEvent-Timer5. 自動偵測與事件處理:p3-57 AutoReceive6. 自動傳送資料:p3-68 AutoSendReceive7. 事件處理與執行緒:p3-75 comEvent-First8. 使用DataReceived事件:p3-85 comEvent9. 委派處理:p3-90 comEvent210. 使用PinChanged事件測試數位輸入:p3-90 comD

2、I11. 計時器與DoEvents()事件進階應用:P3-101 TimerDoevent12. 建立執行緒:p3-106 AutoReceive-Thread程式設計重點解說在類別模組上方引入通訊埠物件參考ImportsImports System.Text在類別模組內第一行宣告通訊埠物件Dim RS232 As SerialPort在Form_Load事件內替ComPort下拉組合方塊加入選項資料 For Each sp As String In SerialPort.GetPortNames Next cmbCOM.Sorted = True '排序 cmbCOM.Selecte

3、dIndex = 0 '第一個是預設選項開啟通訊埠程式碼Dim mBaudRate As Integer Dim mParity As Parity Dim mDataBit As Integer Dim mStopbit As StopBits Dim mPortName As String'欲開啟的通訊埠 mBaudRate = 9600 '通訊速度 mParity = Parity.None '同位位元檢查設定 mDataBit = 8 '資料位元設定值 mStopbit = StopBits.One '停止位元設定值 '建立一個通

4、訊埠物件 RS232 = New SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit) RS232.Encoding = Encoding.Unicode '設定編碼方式為Unicode,以便能顯示中文 If Not RS232.IsOpen Then '尚未開啟 RS232.Open() '開啟通訊埠 btnSend.Enabled = True '致能傳送按鈕 btnReceive.Enabled = True Else MsgBox("通訊埠開啟錯誤(通訊埠已被開啟)"

5、;, MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If傳送資料RS232.Write(txtSend.Text)接收資料Dim InString As String InString = "" Try RS232.ReadTimeout = 1000 InString = RS232.ReadExisting() If InString Is Nothing Then Exit Sub Else txtReceive.Text = InString End If Catch ex As Exception Me

6、ssageBox.Show("讀取錯誤:" + ex.ToString, "錯誤通知", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try關閉通訊埠程式碼If RS232 Is Nothing OrElse Not RS232.IsOpen Then '尚未開啟 MsgBox("通訊埠尚未開啟", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) Else RS232.Close() btnSend.Enabled =

7、False btnReceive.Enabled = False End If結束程式If Not RS232 Is Nothing Then '判斷是否已建立通訊物件 If RS232.IsOpen Then RS232.Close() '若已開啟,就將其關閉 End If End數位輸出測試預設輸出腳位為低RS232.DtrEnable = False RS232.RtsEnable = False以按鈕事件改變腳位RS232.DtrEnable = Not RS232.DtrEnable '變更狀態 If RS232.DtrEnable Then picDTR.I

8、mage = picGreen.Image '變更為綠色圖示 Else picDTR.Image = picRed.Image '變更為紅色圖示 End If RS232.RtsEnable = Not RS232.RtsEnable '變更狀態 If RS232.RtsEnable Then picRTS.Image = picGreen.Image '變更為綠色圖示 Else picRTS.Image = picRed.Image '變更為紅色圖示 End If數位輸入測試 搭配電路測試須加入 Timer控制項當開啟ComPort時同步啟動Timer

9、If Not RS232.IsOpen Then '尚未開啟 RS232.Open() '開啟通訊埠 Timer1.Enabled = True '啟動計時器 Else MsgBox("通訊埠開啟錯誤(通訊埠已被開啟)", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel) End End If加入Timer定時事件以定時偵測是否有資料輸入狀況Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) H

10、andles Timer1.Tick If RS232.DsrHolding Then 'DSR腳位為高電位狀態 picDSR.Image = picON.Image Else picDSR.Image = picOFF.Image End If If RS232.CtsHolding Then 'CTS腳位為高電位狀態 picCTS.Image = picON.Image Else picCTS.Image = picOFF.Image End If If RS232.CDHolding Then 'CD腳位為高電位狀態 picDCD.Image = picON.Im

11、age Else picDCD.Image = picOFF.Image End If End Sub自動讀取傳入的字串須加入 Timer控制項當開啟ComPort時同步啟動Timer加入Timer定時事件以定時偵測是否有資料輸入狀況Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim InString As String InString = "" Try RS232.ReadTimeout = 1000 InS

12、tring = RS232.ReadExisting() If InString.Length = 0 Then '若無資料則跳出 Exit Sub Else txtReceive.Text += InString '若有資料則加到接收的文字框 End If Catch ex As Exception MessageBox.Show("讀取錯誤:" + ex.ToString, "錯誤通知", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try End Sub手動傳送字串Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click RS232.Write(txtSend.Text) End Sub自動傳送字串 當在輸出文字方塊按下Enter 時選用輸出文字方之事件程序 KeyPress事件Private Su

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论