التابع Serial.if(Serial)‎ في أردوينو

من موسوعة حسوب
مراجعة 17:56، 6 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يتحقَّق التابع if(Serial)‎ إن كان المنفذ Serial التسلسلي المُمرَّر إليه جاهزًا للاستعمال.

في لوحات أردوينو Leonardo، يتحقَّ التابع if(Serial)‎ إن كان منفذ الاتصال USB CDC مفتوحًا أم لا. في جميع النسخ الأخرى (من ضمنها if(Serial1)‎) في لوحات Leonardo، ذلك الاستدعاء سيعيد دومًا القيمة true.

عُرِّف هذا التابع في الإصدار أردوينو 1.0.1.

البنية العامة

// جميع اللوحات
if (Serial)

// Leonardo لوحات أردوينو
if (Serial1)

// Mega لوحات أردوينو
if (Serial1)
if (Serial2)
if (Serial3)

القيم المعادة

تعاد القيمة true المنطقية إن كان منفذ الاتصال التسلسلي المحدَّد متاحًا. ستعاد القيمة false إن استُعلِم عن الاتصال USB CDC التسلسلي في لوحات Leonardo قبل أن يكون جاهزًا.

أمثلة

مثال على تهيئة الاتصال التسلسلي وانتظار فتح المنفذ:

void setup() {
 // تهيئة الاتصال التسلسلي والانتظار اكتمال فتح المنفذ
  Serial.begin(9600);
  while (!Serial) {
    ; // انتظار منفذ الاتصال التسلسلي لكي يتصل. هذا الأمر مطلوب من أجل المنفذ USB الأصلي 
  }
}

void loop() {
 // تنفيذ بقية المهام بشكل طبيعي
}

انظر أيضًا

  • التابع available()‎: يجلب عدد البايتات (المحارف) المتاحة للقراءة من منفذ الاتصال التسلسلي.
  • التابع availableForWrite()‎: يجلب عدد البايتات (المحارف) المتاحة للكتابة في ذاكرة التخزين المؤقتة لمنفذ الاتصال التسلسلي دون حجب عملية الكتابة.
  • التابع begin()‎: يضبط معدل تدفق البتات في الثانية الواحدة (baud) لعملية نقل البيانات عبر الاتصال التسلسلي.
  • التابع end()‎: يعطِّل الاتصال التسلسلي المفتوح محرِّرةً بذلك الرجل 0 (RX) والرجل 1 (TX) لتصبح قابلةً للاستعمال كدخل أو خرج رقمي.
  • التابع flush()‎: ينتظر اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي
  • التابع setTimeout()‎: يضبط المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.
  • التابع serialEvent()‎: يُستدعَى عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.

مصادر