Serial.readBytesUntil () وظيفة في برمجة Arduino

Serial Readbytesuntil Wzyft Fy Brmjt Arduino



عندما يتعلق الأمر بالبرمجة باستخدام Arduino ، فهناك العديد من الوظائف التي يمكنك استخدامها لمعالجة الإدخال والإخراج. إحدى وظائف Arduino الرئيسية هي Serial.readBytesUntil () ، والذي يسمح لك بقراءة البيانات من الدفق حتى يتم العثور على شخصية معينة. تساعد هذه الوظيفة في قراءة البيانات من الأجهزة التسلسلية حتى نجد البيانات المطلوبة.

تقوم هذه الكتابة بترجمة الدالة Serial.readBytesUntil () في العمق. سنناقش ما هو عليه ، وكيف يعمل ، ونغطي كود Arduino الذي يشرح كيفية استخدامه في كود Arduino.

Serial.readBytesUntil ()

الدالة Serial.readBytesUntil () هي جزء من فئة Arduino Serial. تقوم هذه الوظيفة بقراءة البيانات من دفق حتى تعثر على حرف معين أو أقصى عدد من البايتات. بمجرد العثور على الحرف أو الحد الأقصى لعدد البايت ، تتوقف الوظيفة عن القراءة وتعيد البيانات التي قرأتها.







تنتهي وظيفة Serial.readBytesUntil () متى تم استيفاء الشروط التالية:



  • عندما تكشف الوظيفة عن حرف فاصل
  • تم الوصول إلى طول المخزن المؤقت المحدد
  • انقضى الوقت المحدد أو انتهى الوقت

لا تقوم هذه الوظيفة بإرجاع الحرف النهائي ، بل تقوم فقط بإرجاع البيانات حتى الحرف الأخير قبل حرف النهاية. عندما يتم إرجاع 0 بواسطة هذه الوظيفة ، فهذا يعني أنه لم يتم العثور على بيانات صالحة.



بناء الجملة

تحتوي الدالة Serial.readBytesUntil () على بناء الجملة التالي:





مسلسل. readBytes حتى ( شار فاصل شار * متعادل، size_t طول ) ؛

حدود

فيما يلي معلمات الوظيفة Serial.readBytesUntil ():

  • شخصية المنهي: الحرف الذي ستتوقف الوظيفة عن القراءة عنده.
  • متعادل: في المخزن المؤقت ، تكون قراءة البيانات التسلسلية هي نوع البيانات المسموح به هو مصفوفة من الأحرف أو البايت.
  • طول: أقصى عدد من البايت للقراءة. نوع البيانات المسموح به هو int .

يعود

عدد البايت الموضوعة في المخزن المؤقت.



ملحوظات: في بيانات الإرجاع ، يتم تجاهل حرف النهاية بواسطة الوظيفة Serial.readBytesUntil () من دفق البيانات.

مثال كود اردوينو

بعد كود اردوينو اشرح استخدام Serial.readBytesUntil () وظيفة:

فارغ يثبت ( ) {
مسلسل. يبدأ ( 9600 ) ؛ // تهيئة الاتصال التسلسلي بمعدل باود 9600
}

فارغ حلقة ( ) {
بايت المخزن المؤقت [ 5 ] ؛ // تحديد مصفوفة بايت لتخزين البيانات الواردة
int عدد بايت = مسلسل. readBytes حتى ( ' ' ، متعادل، 5 ) ؛ // قراءة البيانات الواردة من الاتصال التسلسلي حتى تتم مصادفة حرف سطر جديد

لو ( عدد بايت > 0 ) { // تحقق مما إذا تمت قراءة أي بايت
مسلسل. مطبعة ( 'الحرف المتلقى:' ) ؛
مسلسل. يكتب ( المخزن المؤقت ، numBytes ) ؛ // اطبع البيانات المستلمة على الشاشة التسلسلية
مسلسل. println ( ) ؛
}
}

في الإعداد () وظيفة معدل البث بالباود سيؤسس اتصال تسلسلي.

في الدالة loop () ، نحدد أولاً مصفوفة بايت تسمى 'متعادل' . سيتم استخدام هذه المجموعة لتخزين البيانات الواردة المقروءة من الاتصال التسلسلي.

بعد ذلك ، نسمي Serial.readBytesUntil () دالة ، والتي تقرأ البيانات الواردة من الاتصال التسلسلي حتى تواجه حرف سطر جديد ('\ n'). الوسيطة التالية هي طول المخزن المؤقت الذي سيستغرق بحد أقصى 5 بايت من البيانات في المرة الواحدة.

يتم تخزين البايت الذي تم إرجاعه في ملف 'numBytes' عامل. في حالة إذا كانت البيانات المستلمة أكبر من طول المخزن المؤقت ، سيتم إنهاء البيانات وسيتم إرسالها في دفق البيانات التالي.

انتاج |

خاتمة

ال Serial.readBytesUntil () تعمل الوظيفة في برمجة Arduino على قراءة البايت من دفق إدخال تسلسلي حتى يتم استلام حرف إنهاء محدد. تعطي الوظيفة إجمالي البايت للقراءة وتخزينها في مخزن مؤقت متوفر. اقرأ المقالة للحصول على مزيد من المعلومات المتعلقة بوظيفة Serial.readBytesUntil ().