זה בסדר לכתוב נתונים סדרתיים ללא שום דבר מחובר.
במקרה (2) "Arduino + USB interface interface", ל- arduino אין מושג אם משהו מחובר או מקשיב ליציאה הטורית. . הקוד ישדר את הבתים ויפעל בדיוק זהה בין אם מחובר לכל דבר ובין אם לאו.
במקרה (1) "ארדואינו עם USB מובנה" יש לו מושג כלשהו, אבל פשוט מפיל בתים שהולכים שישודר כאשר יציאת ה- USB אינה מחוברת.
סדרתי חומרה (מקרה 2) כולל מאגר פלט, אך זה רק הופך את התוכנית למהירה מעט יותר. כאשר המאגר ריק, קריאה ל סדרתי. {הדפס, כתוב} קוד> ישים בתים במאגר וימשיך הלאה. כשהוא מלא, סידורי. {הדפס, כתוב}
ימתין עד שיהיה מספיק מקום להכניס את שארית ההודעה למאגר ולהמשיך הלאה. UART החומרה וההפרעות שהיא מייצרת ימשיכו להוציא בתים מהמאגר ולהעביר אותם בקצב קבוע בין אם משהו מחובר לחשמל ובין אם לאו. בכל מקרה, המאגר הוא בגודל קבוע ולעולם לא יעלה על גדותיו.
ככל שיכולתי לדעת USB-Serial (מקרה 1) מאגרים רק נתונים נכנסים. מכיוון שהשיחות ל סדרתי. {הדפס, כתוב} קוד> לא עושות דבר כשאינן מחוברות, הן עשויות לקחת פחות זמן ממה שהן היו עושות אחרת. אם הקוד שלך באמת לא בטוח לגבי התזמון, זה עלול לגרום לבעיה, אבל אני בספק אם זה יקרה.
דוגמאות רבות שמגיעות עם ה- Arduino IDE כוללות את קוד הקוד הבא שמשהה תואם USB מקורי ל- Arduino עד חיבור ה- USB מאותחל:
תוך כדי (! Serial) {; // המתן להתחברות היציאה הטורית. דרוש ליציאת USB מקומית בלבד}
קוד זה מונע מהארדואינו לעשות דבר עד לכבל ה- USB מחובר. השאיר או מחק את 3 השורות האלה אם ברצונך שהארדואינו יפעל "stand- לבד "ללא חיבור כבל USB ( ספר בישול של Arduino עמ '117) -
לאחר שתמחק שורות אלה, אם תחבר מאוחר יותר כבל USB, ה- USB יאותחל כהלכה, ו אז תראה בצג הסידורי שלך את כל מה שנדפס על ידי מאוחר יותר סדרתי פקודות .print () הפועלות. (נבדק על LC Teensy).