سؤال

لدي جهاز استشعار يستخدم RS232 USB لتلقي الأوامر من جهاز الكمبيوتر وإرسال البيانات إلى جهاز الكمبيوتر.

استشعار يحتاج إلى إعادة تعيين (باستخدام DTR خط) قبل أن يمكن إرسال الأمر إلى ذلك.

حاولت استخدام المدمج في .صافي المنفذ التسلسلي, ولكن لا يبدو أن قيادة DTR خط كما هو متوقع.أنا بدأت أتساءل عما إذا كان DTREnable الملكية في الواقع يدفع DTR دبوس ، أو إذا كان فقط يمكنها من خلال المصافحة.

أخرى SerialPort تطبيقات التي يمكن أن تجد على شبكة الإنترنت يستخدم أيضا Win32 API, ولكن أجد أنه من الصعب جدا أن إغلاق الميناء مع هذه التطبيقات.إذا كنت خطوة من خلال رمز أستطيع أن أرى ذلك يحصل عالقا على WaitOne الأمر.

أحد يعرف كيفية قيادة DTR مع النظام.IO.الموانئ.SerialPort?أو معرفة جيدة مكون من هناك ؟

هل كانت مفيدة؟

المحلول

كتبت هذا الاختبار DTR.أنه يعمل كما هو متوقع باستخدام USB serialport محول.أنا التحقق من ذلك عن طريق ربط كابل إلى DataTracker (RS232 اندلاع مربع ، مع LED).DTR لا تغيير.

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    SerialPort1.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    SerialPort1.PortName = "COM5"
    SerialPort1.Open()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SerialPort1.RtsEnable = True

    Debug.WriteLine("DTR +")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.DtrEnable = True 'DTR -
    Debug.WriteLine("DTR -")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.DtrEnable = False 'DTR +
    Debug.WriteLine("DTR +")
    System.Threading.Thread.Sleep(1000)

    SerialPort1.RtsEnable = False
End Sub

نصائح أخرى

تحقق pinout الكابل.قد يكون تسهم في هذه المشكلة.

الكابل دبوس الموصل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top