Det er OK at skrive serielle data uden noget tilsluttet.
I tilfælde (2) "Arduino + USB-interface-chip", har arduino ingen idé om noget er tilsluttet eller lytter til den serielle port . Koden transmitterer byte og fungerer nøjagtigt den samme, uanset om den er tilsluttet til noget eller ej.
I tilfælde (1) "arduino med indbygget USB" har den en idé, men bare dropper bytes, der går skal sendes, når USB-porten ikke er tilsluttet.
Hardwareserie (sag 2) har en outputbuffer, men det gør bare programmet lidt hurtigere. Når bufferen er tom, placerer et opkald til seriel. {Print, skriv}
bytes i bufferen og fortsætter. Når den er fuld, Seriel. {Udskriv, skriv}
venter, indtil der er plads nok til at lægge resten af meddelelsen i bufferen og gå videre. Hardware-UART og afbrydelser, den genererer, fortsætter med at tage bytes ud af bufferen og transmittere dem med en konstant hastighed, uanset om noget er tilsluttet eller ej. Under alle omstændigheder er bufferen i en fast størrelse og vil aldrig løbe over.
Så vidt jeg kan fortælle, at USB-Serial (sag 1) kun buffrer indgående data. Da opkaldene til Serial. {Print, skriv}
ikke gør noget, når de ikke er tilsluttet, kan det tage kortere tid, end de ellers ville have gjort. Hvis din kode virkelig er usikker med hensyn til timing, kan det forårsage et problem, men jeg tvivler på, at det vil.
Mange eksempler, der følger med Arduino IDE, har følgende kode kode, der stopper native USB Arduino-kompatible indtil USB-forbindelsen initialiseres:
mens (! Serial) {; // vent på, at seriel port opretter forbindelse. Kun nødvendigt til native USB-port}
Denne kode forhindrer Arduino i at gøre noget, indtil USB-kablet er tilsluttet. Kommenter eller slet disse 3 linjer, hvis du vil have Arduino til at køre "stand- alene "uden USB-kabelforbindelse ( Arduino Cookbook s. 117) -
efter at du har slettet disse linjer, hvis du senere tilslutter et USB-kabel, initialiseres USB korrekt, og derefter vil du se alt på din serielle skærm, der er udskrevet af enhver senere Serial .print () kommandoer, der kører. (Testet på en Teensy LC).