Acest program eu folosesc de multe ori atunci când depanare aparatul funcționează cu USART de protocol, în special, chiar și atunci când testarea RS-232 / TTL MAX232 modul convertor de nivel am folosit acest program.
Algoritmul programului:
Programul acceptă personajele și le trimite imediat la ieșire, adică acest program este un fel de stub.
Să examinăm mai atent secțiunile programului.
USART_Init (47); - aici numărul "47" este valoarea registrului ubrr, este selectat dintre următoarele considerente.
Pentru înțelegere, trebuie să deschideți documentația pentru microcontrolerul Attiny2313 pe pagina care conține tabelul de viteză a protocolului USART, în funcție de oscilatorul cuarț extern.
În cazul în care cifrele 1 ... 4 înseamnă:
1 - viteza cu care intenționăm să lucrăm,
2 - valoarea ubrr,
3 - coloana cu valoarea ubrr pentru modul cu viteză dublă (U2X = 1),
4 este frecvența oscilatorului cuarț extern.
Prin viteza transferului de date, pot spune că nu există nici o diferență în ceea ce privește alegerea, fie că este vorba de 9600 bps sau de 115,2 kbps, stabilitatea muncii este ridicată acolo și acolo.
Datorită dublării vitezei, vă sfătuiesc să decideți și să decideți întotdeauna și să lucrați întotdeauna cu viteză dublă sau în modul normal pentru a evita confuzia în viitor. Diferențe în muncă, nu am simțit că în modul U2X = 1 că în U2X = 0.
Prin alegerea oscilator de cristal poate spune că este necesar să se ia în considerare faptul că pe specificul portului lor USART de lucru are o valoare de eroare, care, în unele cazuri, se poate ajunge la valori ridicate și, astfel, afectează în mod negativ calitatea datelor, ceea ce duce la funcționarea defectuoasă. Pentru a evita astfel de defecțiuni, vă sfătuiesc să opriți alegerea următoarelor valori ale generatorului de cuarț:
1. 1.8432MHz
2. 3.6864MHz
3. 7,3728 MHz
4. 11,0592 MHz
5. 14,7456 MHz
Unele sunt destul de greu de obținut, chiar și în curte și în secolul XXI, iar China este atât de rivită încât deja se agită în homosexualitate, dar totuși acest fapt este un fapt. Am fost norocos să găsesc cuarț 7,3728 MHz, acum îl folosesc.
Alegerea acestor valori ale generatorului de cuarț se datorează absenței erorilor de date atunci când se lucrează cu USART, toate valorile fiind luate din fișa tehnică la microcontrolerul attiny2313. eroare de coloană.
Aici este de fapt codul USART "Echo" pentru ATtiny2313:
Descărcați proiectul pentru studio AVR cu firmware.
Pentru a lucra cu portul COM al unui PC, vă recomandăm să utilizați programul Terminal RS232