Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

Jason0821 發問時間: 電腦與網際網路程式設計 · 1 0 年前

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?

2 個已更新項目:

這本書已經絕版了, 網路上買不到, 請問大概在第幾章?

3 個已更新項目:

RS232.RtsEnable = True 輸出High 沒問題,

但是RtsEnable = False 輸出Low 有問題

1 個解答

評分
  • ?
    Lv 5
    1 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
還有問題?馬上發問,尋求解答。