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

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

يضبط التابع begin()‎ معدل تدفق البتات في الثانية الواحدة (baud) لبدء عملية نقل البيانات عبر الاتصال التسلسلي. من أجل التواصل مع الحاسوب، استعمل أحد معدلات تدفق البيانات التالية: 300، أو 600، أو 1200، أو 2400، أو 4800، أو 9600، أو 14400، أو 19200، أو 28800، أو 38400، أو 57600، أو 115200. مع ذلك، تستطيع تحديد معدلات نقل أخرى للتواصل عبر الرجلين 0 و 1 مع جهاز أو عنصر يتطلب معدل تدفق بيانات محدَّد غير تلك المذكورة.

يضبط المعامل الثاني الاختيار المُمرَّر إلى التابع begin()‎ بتات البيانات، التماثل (parity)، والإيقاف. القيمة الافتراضية هي 8 بتات للبيانات وبت للإيقاف وعدم وجود بتات للتحقق من التماثل.

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

Serial.begin(speed) 
Serial.begin(speed, config)

// فقط Mega لوحات أردوينو
Serial1.begin(speed)
Serial2.begin(speed)
Serial3.begin(speed)
Serial1.begin(speed, config)
Serial2.begin(speed, config)
Serial3.begin(speed, config)

المعاملات

speed

عدد طويل يحدِّد معدل تدفق البتات في كل ثانية (baud).

config

يحدِّد عدد بتات البيانات والتحقق من التماثل (parity) والإيقاف. القيم المتاحة التي يمكن استعمالها هي:

  • SERIAL_5N1
  • SERIAL_6N1
  • SERIAL_7N1
  • SERIAL_8N1 (القيمة الافتراضية)
  • SERIAL_5N2
  • SERIAL_6N2
  • SERIAL_7N2
  • SERIAL_8N2
  • SERIAL_5E1
  • SERIAL_6E1
  • SERIAL_7E1
  • SERIAL_8E1
  • SERIAL_5E2
  • SERIAL_6E2
  • SERIAL_7E2
  • SERIAL_8E2
  • SERIAL_5O1
  • SERIAL_6O1
  • SERIAL_7O1
  • SERIAL_8O1
  • SERIAL_5O2
  • SERIAL_6O2
  • SERIAL_7O2
  • SERIAL_8O2

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

لا يعاد أي شيء.

أمثلة

مثال على استعمال التابع begin()‎ لتهيئة واجهة التخاطب التسلسلية وبدئها:

void setup() {
    Serial.begin(9600); // فتح منفذ الاتصال التسلسلي وضبط معدل تدفق البيانات إلى 9600 بت/ثا 
}

void loop() {}

المثال التالي خاص بلوحة أردوينو Mega. يعمل المثال على تهيئة منافذ الاتصال التسلسلية الأربعة التي تملكها اللوحة:

// أربعة منافذ اتصال تسلسلية Mega تملك لوحة أردوينو
// (Serial, Serial1, Serial2, Serial3),
// يمكن أن يكون لكل واحد منها معدل تدفق بيانات مختلق عن الآخر

void setup(){
  Serial.begin(9600);
  Serial1.begin(38400);
  Serial2.begin(19200);
  Serial3.begin(4800);

  Serial.println("Hello Computer");
  Serial1.println("Hello Serial 1");
  Serial2.println("Hello Serial 2");
  Serial3.println("Hello Serial 3");
}
void loop() {}

انظر أيضًا

  • التابع end()‎: يعطِّل الاتصال التسلسلي المفتوح محرِّرةً بذلك الرجل 0 (RX) والرجل 1 (TX) لتصبح قابلةً للاستعمال كدخل أو خرج رقمي.
  • التابع find()‎: يتحقَّق من وجود السلسلة النصية المُمرَّرة إليه ضمن بيانات ذاكرة التخزين المؤقتة للاتصال التسلسلي.
  • التابع flush()‎: ينتظر اكتمال عملية نقل البيانات المرسلة عبر الاتصال التسلسلي
  • التابع parseInt()‎: يعيد أول عدد صحيح صالح من مخزَّن الاتصال التسلسلي المؤقت.
  • التابع peek()‎: يعيد البايت (المحرف) التالي من البيانات المستلمة عبر الاتصال التسلسلي دون حذفه من المخزَّن الداخلي المؤقت للاتصال التسلسلي.
  • التابع print()‎: يطبع البيانات المُمرَّرة إليها على منفذ الاتصال التسلسلي بترميز ASCII (أي نص يستطيع الأشخاص الآخرين قراءته). 
  • التابع read()‎: يقرأ البيانات المستلمة عبر الاتصال التسلسلي.
  • التابع setTimeout()‎: يضبط المهلة الزمنية القصوى بالميلي ثانية لانتظار وصول البيانات من منفذ الاتصال التسلسلي.
  • التابع write()‎: يكتب بيانات ثنائية على منفذ الاتصال التسلسلي.
  • التابع serialEvent()‎: يُستدعَى عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.

مصادر