سؤال

لقد كتبت بعض التعليمات البرمجية C# أن يتحقق ما إذا كان الجهاز موجود على أي SerialPort طريق إصدار الأوامر على منفذ الاستماع الرد.عندما كنت مجرد مجموعة ميناء سرعة فتح ميناء الحصول على المسلسل تيار بدء المعالجة ، وهو يعمل 100% من الوقت.ومع ذلك, بعض الأجهزة تعمل بسرعات مختلفة و أنا أحاول أن مسبار الجهاز بسرعات مختلفة إلى autonegotiate اتصال فضلا عن الكشف عن جهاز الوجود.

عندما تفعل كل هذا في موضوع واحد لا توجد مشاكل.ومع ذلك, 3s في مهلة عشرة سرعات هو 30s في المنفذ التسلسلي ، و قد يكون هناك العديد من.ومن ثم الرغبة في تحقيق جميع المنافذ في نفس الوقت.

هذا يعمل في بعض الأحيان.في بعض الأحيان Vista bluescreens.عند استخدام خيوط التحقيق جميع المنافذ في وقت واحد تقريبا دائما bluescreens.عندما تجبر كل شيء إلى تشغيل في موضوع واحد هذا لم يحدث.

USB-serial غزير PL-2303 محول هو في استخدام x64 مع السائقين.


@فينكو شكرا على النصيحة على قراءة ملف تحديد أعطال التطبيق.

أقرب ما أستطيع أن أقول, جوهر المشكلة هو أن تبدأ من جديد إدخال/إخراج غير متزامن العملية من موضوع مختلف فمن الممكن أن تعطي معنى جديدا تتداخل I/O إحداث حالة سباق داخل السائق.منذ السائق ينفذ في وضع النواة ، BLAM!

خاتمة

باستثناء مستهلا لا تستخدم BeginXxx خارج من رد معالج و لا تتصل BeginXxx حتى كنت قد دعا EndXxx ، لأنك سوف تحفز حالة تعارض في برنامج تشغيل التعليمات البرمجية التي يتم تشغيلها في وضع kernel.

حاشية

لقد وجدت أن هذا ينطبق أيضا على مأخذ تيارات.

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

المحلول

وقد كتب Windows برامج تشغيل واحدة من هذا النوع من الجهاز مرة ستكون نصيحتي لا تضيع وقتك مع WinDbg في محاولة لإثبات ما تعرفه بالفعل - أيأن السائق كنت تستخدم عربات التي تجرها الدواب.

إذا كان يمكنك أن تجد أكثر ما يصل إلى تاريخ سائق من PL2302 ، ثم حاول ذلك ولكن نصيحتي هي أنه إذا كان لديك لاستخدام USB->Serial محولات ، FTDI-على أساس تلك هي أفضل.(إنهم لا واحدة كتبت السائقين ، إما...)

نصائح أخرى

يمكنك أيضا تعطيل "إعادة التشغيل التلقائي" في إطار خصائص النظام\Advanced\بدء الانتعاش\إعدادات.مرة واحدة يمكنك تعطيل ذلك, يمكنك أن ترى الموت الزرقاء و البحث عن رسالة الخطأ مثلا ، IRQL_LESS_OR_EQUAL, من خلال البحث عن هذا الخطأ اسم, يمكنك عادة تضييق على مصدر المشكلة.

راجع للشغل, ليس الكثير من دفتر يأتي مع المنافذ التسلسلية في الوقت الحاضر ، لذلك يجب أن تكون باستخدام USB-Serial converter?إذا كان هذا هو الحال ، فإن السائق قد يكون مشكلة في البداية ، منذ أكثر المصنعة كتب المنفذ التسلسلي السائق تشغيل الظاهري.

الزرقاء يعني عادة سائقي عربات التي تجرها الدواب.

أي نوع من الأب المنافذ التي تستخدمها ؟ لقد كان BSODs مع SiLabs CP21xx USB إلى المسلسل محولات السائقين.

هناك FTDI السائقين مستقرة تحت x64 vista و win7.لقد الثاني الشخص الذي قال أن استخدام FTDI الشرائح فقط.

معظم رخيصة المسلسل إلى الدونغل usb في المحلات التجارية بالقرب مني (تورنتو ، كندا) يبدو أن رقائق فتدي.انها أبدا على مربع ، لذلك يمكنني شراء واحد, و إذا كانت جيدة ، وأنا أذهب شراء علبة كاملة منهم.

W

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