none
serialport 問題 RRS feed

  • 問題

  • 這是我的程式: 

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
            Dim mBaudRate As Integer
            Dim mParity As Parity
            Dim mDataBit As Integer
            Dim mStopbit As StopBits
            Dim mPortName As String

            mPortName = cmbCOM.SelectedItem.ToString     
            mBaudRate = 9600  
            mParity = Parity.None
            mDataBit = 8  
            mStopbit = StopBits.One 
        
            RS232 = New SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit)
            RS232.Encoding = Encoding.ASCII
            If Not RS232.IsOpen Then
                RS232.Open()
                btnSend.Enabled = True 
                btnReceive.Enabled = True
            Else
                MsgBox("~~通訊埠開啟錯誤(通訊埠已被開啟)~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
                End
            End If

        End Sub

     
      我是透過(RS232接頭)再經過(RS232轉RS485--轉接盒)來連接讀取表頭的資料

      結果卻在RS232.Open()這一行     出現:請確定你有足夠的權限可以存取這些資源

      請問各位,我是在哪裡出現問題了?
     
      謝謝!

    2009年4月10日 上午 03:20

解答

  • gimy:
           正確的Exception message應該是「拒絕存取通訊埠COM1」吧?
           所以一定是有某個程式已經先佔住了你的COM Port,
           例如你先開著超級終端機使用COM1,又再開啟這個程式試圖開啟COM1。
           需要查一下你的電腦中是否有程式已經佔用了那個COM Port
            If Not RS232.IsOpen Then <== 這個檢查對於不是同一個執行個體是無效的
    2009年4月11日 下午 04:25
    版主

所有回覆

  • 請問你的作業系統是 ?


    Cmf.Net (C) 2009
    2009年4月10日 上午 04:09
  • VB2008
    2009年4月10日 上午 05:11
  •    XP
    2009年4月10日 上午 05:12
  • 重開機以後再試,如果重開機以後第一次正常,表示你先前錯誤時沒正確關閉 Serial Port ,被先前程式碼除錯中斷時鎖住。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年4月10日 上午 05:56
  • 不好意思!
    我重開機之後還是如此
    我有把RS485的正負線(用的是RJ-11的接頭)及接地線(這個我是直接拉到RS232的第五腳接上的)
    不過要開啟連線測試時
    就會出現這個錯誤

    真不知該如何解決?
    請有碰過RS485連線的朋友幫個忙吧!
    感激不盡。
    2009年4月10日 上午 07:44
  • gimy:
             我測試過你的程式是Ok的,不過RS485應該不需接地,因為它是靠+/-的準位差傳資料的.
             有沒有先試過把轉接設備拔掉,看看會不會出現一樣的錯誤
             還有, 這個Com port是USB轉的,還是原來主機板的Com Port ?   
             是否有特別的權限設定在管理Com port的使用?

    2009年4月10日 上午 10:15
    版主
  • gimy:
           正確的Exception message應該是「拒絕存取通訊埠COM1」吧?
           所以一定是有某個程式已經先佔住了你的COM Port,
           例如你先開著超級終端機使用COM1,又再開啟這個程式試圖開啟COM1。
           需要查一下你的電腦中是否有程式已經佔用了那個COM Port
            If Not RS232.IsOpen Then <== 這個檢查對於不是同一個執行個體是無效的
    2009年4月11日 下午 04:25
    版主
  • 感謝樓上大大們的回應
    我現在利用超級終端機已經有回應了
    表示我應該可以收到電表所傳來的回應了
    現在我只剩下vb這邊的問題
    可能還要再設定一些電表這邊的功能設定給vb 知道
    我在試試看
    畢竟目的還未達成
    2009年4月13日 上午 01:52