Küsimus:
Seeriandmed on imelikud
sachleen
2014-02-17 08:24:00 UTC
view on stackexchange narkive permalink

Mul on lihtne visand, mis prindib seriaalile "Tere maailm", kuid saan selle asemel hulga sipelgusi.

  void setup () {Serial.begin (9600 );} void loop () {Serial.println ("Tere maailm"); delay (1000);}  

Miks ei trükita "Hello World" nagu kood ütleb?

Kas olete kontrollinud, kas jadapordi lähtestamine on õige ja sobib PC jadaterminaliga? Seadistusel () peaks olema midagi sellist nagu Serial.begin (9600);
@Rajendra see rida on minu toodud koodinäites. Pealegi pole mul tegelikult probleemi. See on algajatele tavaline probleem ja ma vastasin alljärgnevale küsimusele.
Kolm vastused:
#1
+8
sachleen
2014-02-17 08:24:00 UTC
view on stackexchange narkive permalink

Plaat ja terminal ei kasuta tõenäoliselt sama baudikiirust. Kontrollige Arduino jadaterminali paremat alanurka ja veenduge, et selle väärtuseks oleks seatud 9600.

Seeriandmed

Jadaside toimib, saates kogu andmevoo üks bit korraga. See on vastupidine tavalisele paralleelpordile, mis saadab ühe baidi korraga. Mõlemad seadmed peavad teadma, millise kiirusega andmeid saadetakse. Lisaks peavad mõlemad seadmed töötama sama kiirusega. Seda nimetatakse ülekandekiiruseks.

Baudi kiirus

Baud tähendab tegelikult ainult impulsse sekundis. Seeriaside kontekstis tähendab see, kui palju bitti sekundis edastatakse. Üks levinumaid väärtusi on 9600, kuid on ka teisi levinumaid väärtusi, mis on tegurid või 9600 kordsed. See pole siiski oluline, kui mõlemad seadmed töötavad sama kiirusega.

Kui ma saadan teile sõnumeid kiiremini, kui te neid saate, kaotate andmed. Kui ma saadan teile sõnumeid aeglasemalt kui teie, saate segamini lollusi sellega, mis ma teile saatsin.

Andmed, pariteet, stoppbitid

Kui vaatate dokumentatsiooni Rakenduse begin () jaoks näete, et sellel võib olla kaks parameetrit:

  Serial.begin (speed) Serial.begin (speed , config)  

Loodetavasti saate nüüd kiirusest aru, Arduino suhtleb just bittidega sekundis.

Teine parameeter config kood>, võimaldab teil seadistada veel mõnda asja järjestikuse andmeedastuse kohta. Need on andmed, pariteet ja stoppbitid. Näete lehel selle väärtusi nagu 5N1 , 6N1 ja SERIAL_8N1 (vaikimisi)

Esimene number tähistab, kui palju andmebitte. Teine tegelane ütleb teile, milline on pariteedi suurus. E paarispariteedi korral, O paaritu pariteedi korral või N paarsuse puudumise korral. Kolmas number ütleb teile, kui palju stoppbitte on.

Nii et tõesti, koos 8N1-ga saadetakse teie "andmete" iga 8 bitti jaoks 10 bitti. 1 algbitt, 8 andmebitti ja 1 stopbit.

Igatahes peavad mõlemad pooled leppima kokku nii selle teabe kui ka kiiruse osas. Arduino jadaterminal ei võimalda teil neid sätteid muuta, kuid teised seda teevad, seega peate olema kindel, et kõik need seadistusseaded on samad.

Lisateave wiki kohta: Asünkroonne jadaühendus

#2
  0
tmaster
2017-04-02 14:33:56 UTC
view on stackexchange narkive permalink

Kulutasin selle lahendamiseks pool tundi ja just minu Arduino Pro Mini on 3.3V ja valisin Arduino IDE-st (arvutis) 5V. Seeriatrükk ei tööta kunagi isegi nii, kui on määratletud sama sagedus.

Valige Arduino IDE-s õige tahvel .

Selguse huvides on õige protsessor Vahekaardil Tööriistad tuleb valida (pinge / taktsagedus).

#3
  0
John Doe
2018-07-11 06:25:08 UTC
view on stackexchange narkive permalink

Sachleeni vastus (ülaltoodud) ütleb:

  Plaat ja terminal ei kasuta tõenäoliselt sama baudikiirust. Kontrollige Arduino jadaterminali paremat alanurka ja veenduge, et selle väärtuseks oleks seatud 9600.  

Kui see number on 9600 ja teil on endiselt segaseid andmeid, kontrollige väljundit, mille saite kood. See peaks lugema umbes nii:

  Sketch kasutab 2754 baiti (8%) programmi salvestusruumist. Maksimaalne on 30720 baiti. Üldised muutujad kasutavad 195 baiti (9%) dünaamilist mälu, jättes kohalike muutujate jaoks 1853 baiti. Maksimaalselt on 2048 baiti. C: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / bin / avrdude -CC: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / etc / avrdude.conf -v -patmega328p -carduino -PCOM5 -b57600 -D -Uflash: w: C: \ Users \ Owner \ AppData \ Local \ Temp \ arduino_build_457862 / LockCode.ino.hex: i avrdude: Versioon 6.3, koostatud 17. jaanuaril 2017 kell 12: 00:53 Autoriõigus (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Autoriõigus (c) 2007-2014 Joerg Wunsch Kogu süsteemi hõlmav konfiguratsioonifail on "C: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / etc / avrdude.conf "Pordi kasutamine: COM5 Programmeri kasutamine: arduino Ülekande kiirus: 57600  

See alumine rida (minu postitatutest) ütleb, mida teie seade vaikimisi kasutab baudikiirus on. Minu jaoks muutsin Serial.begin (9600); -> Serial.begin (57600); ja kontrollisin, et minu Arduino jadaterminali paremas alanurgas oleks 57600 .

Pärast seda, kui ma selle käitusin ja see õnnestus, suutsin minna tagasi 9600-le ja hankida segadusteta andmeid. Arduino näib olevat peenike ...



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...