Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。
VB.Net 控制 COM Port 接腳
網路上有提到可以用 RTSEnable 來設定取得 RTS 接腳的狀態
我試了一下, 我卻遇到 RTS接腳 不是預期狀態
在 VB 中, 用 SerialPort物件, Open 之後, 用 VB 預設值 9600/8/n/1/n
COM port的 RTS信號預設是 高電位
我送了一個 COM.RTSEnable=Ture
這時 RTS 會送出一個 約 100ms 的 Low Pulse, 但是會回到 高電位
送一個 COM.RTSEnable = False
這時 RTS 會送出一個 約 5ms 的 Low Pulse, 但是也回到 高電位
它可以呈現 High/Low 透過控制嗎??? 還是一定會回到高電位????
所以 重點是 RS232.DtrEnable = False 嗎?? Why?
這本書已經絕版了, 網路上買不到, 請問大概在第幾章?
RS232.RtsEnable = True 輸出High 沒問題,
但是RtsEnable = False 輸出Low 有問題
1 個解答
- ?Lv 51 0 年前最佳解答
Imports System.IO.PortsPublic Class Form1
'宣告一個通訊埠物件
Dim RS232 As SerialPort Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mBaudRate As Integer
Dim mParity As IO.Ports.Parity
Dim mDataBit As Integer
Dim mStopbit As IO.Ports.StopBits
Dim mPortName As String mPortName = "com4"
mBaudRate = 9600
mParity = Parity.None
mDataBit = 8
mStopbit = StopBits.One
RS232 = New IO.Ports.SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit)
If Not RS232.IsOpen Then '尚未開啟
RS232.Open() '開啟通訊埠
RS232.DtrEnable = False
RS232.RtsEnable = True
Else
MsgBox("~~通訊埠開啟錯誤(通訊埠已被開啟)~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
End
End If
End Sub
End Class
我有試過了RTS可以保持為HI
2011-06-20 10:43:55 補充:
可以參考文魁資訊出的"Visual Basic 2005 與自動化系統監控_RS232串列通訊篇"一書
2011-06-20 14:41:00 補充:
RS232.DtrEnable = False
這個是多加的,可以不要。
在第三章裡有。
參考資料: me