Rozdíl mezi Arduino Serial.print () a Serial.write ()

Difference Between Arduino Serial



Nejdříve si promluvte o odeslání.

Zadejte řetězec znaků do pole monitoru v okně Odeslat IDE Arduino (jsou zde čísla, písmena a symboly) a program postupně převede znaky v řetězci na kódy ASCII a odešle je.
Analogicky zadejte „aA1 &“, poté se postupně odešlou „97“, „65“, „49“, „38“ (převod zde a níže jsou pravidla ASCII). Funkce arduino Serial.read () ukládá tyto čtyři hodnoty do proměnných, předpokládáme, že je to data [1], deta [2], data [3], data [4].

Jako příklad mluvíme o přijímání a zobrazování dat [1].

Pokud je to Serial.write (data [1]), bude to vypadat příměji, arduino přímo pošle data [1] zpět, přijímající konec sériového portu přijme 97, najde znak odpovídající 97 jako „a“ a zobrazí Ukaž nám. (To také vysvětluje, že na prvním obrázku níže je mezera mezi OK a abc a znak odpovídající 0 by měl mít hodnotu null.)
Pokud je to Serial.print (data [1]), bude to obtížnější, arduino rozloží '97' na '9' a '7', nejprve převede '9' '57', odešle na IDE a poté převede '7 'to' 55 ', send to IDE. IDE přijalo '57' a '55' a převede je na '9' a '7' a ukázalo nám to.



Testovací kód a boční pohled

IDE platformy Windows verze 1.8.9



byte data[3] byte count=1 void setup() { Serial.begin(9600) Serial.print('OK') } void loop() { while(Serial.available()>0) { data[count]=Serial.read() count++ delay(100) } count=1 delay(1000) Serial.print/write(data[1]) Serial.print(' ') Serial.print/write(data[2]) Serial.print(' ') Serial.print/write(data[3]) Serial.println(' ') }

Následující dva obrázky jsou Yong ** Serial.write () Výsledky čísel a písmen vytiskněte samostatně abc
Používají se následující dva obrázky
Serial.print () ** tiskne čísla a znaky samostatně
datum : 2020.2.16