الدالة Serial.begin()‎ في أردوينو

من موسوعة حسوب
مراجعة 09:58، 22 أكتوبر 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()‎: تُستدعَى عندما يكون هنالك بيانات متاحة للقراءة عبر منفذ الاتصال التسلسلي.

مصادر