Tik nedidelė 89s52 UART problema

G

garg29

Guest
Hi friends, I'm just bandome daryti bendravimo tarp 2-89S52 mikrokontrolerių.

Vienas perduodančiosios "HELLO"
ir kiti gauna tą patį
ir jos rodo LCD (16x2).Perduodančioji punktas Gerai kaip aš patikrinti rezultatą HyperTerminal.Priimančiąsias pabaigoje taip pat rodomi "HELLO", bet su maža problema, ne Pirmosios instancijos žodis "HELLO" rodomas tinkamai, tačiau po to jis rodomas kaip "HHELLO" ty pobūdžio "H" yra rodomas du kartus.Funkcija "tuščia uart_gets (char * s)" Aš bandė pastatyti linija "ai -" šios rodomas "Ello" ( "H" dingo) pirmą kartą, tačiau "HELLO" (tinkamą) continoulsy po to.Toliau kodą.
Ačiū visiems suteikti laiko perskaityti mano problema.Linkėjimai.
Paskutinį kartą redagavo garg29 04 Bir 2009 10:36, edited 2 kartus iš viso

 
Te wszystkie taśmy, siłowniki, rękojeści, pokrętła to zaawansowany system pozwalający na pełną stabilizację lustrzanki cyfrowej. Dzięki bardzo bogatej regulacji możliwe jest dopasowanie sprzętu do potrzeb fotografa, albo filmowca. Chameleon DSLR Rig powstał w Szwecji. Sprzęt kosztuje niemało, bo aż 3500 … <a href="http://www.frazpc.pl/aktualnosci/576431,To-co-to-zaawansowany-system-stabilizacji-dla-lustrzanki-cyfrowej.html">Continue reading <span class="meta-nav">→</span></a>

Read more...
 
Kodas:char uart_getc (void) / / Gauti Simbolis iš UART

(

/ / SBUF = 0; / / kodėl ?????

while (RI == 0); RI = 0;

grįžti SBUF;

)
 
Ačiū už atsakymus Kurenai_ryu.Aš ką tik bandė įdiegti SBUF = 0; tačiau did'nt jokių pokyčių.Aš taip pat bandė
p. [7], tačiau, kad taip pat ne padėjo.

Štai mano kodas LCD
Kodas:tuščia

lcd_puts (const char * s)

(

LCD_RS = 1; / / rašymo ženklų

while (* s)

lcd_write (* s );

)
 
Problema yra ne "ekstra", "H" Jūs matote, bet ką jūs nematote!
I'm guessing savo siùstuvas pusėje siųsti "HELLO" \ r \ n "(tai yra įprastas" Enter ", arba CR = 0x0D (13)
ir LF = 0x0A (10)).
Jūsų "uart_gets ()" laukia kol jis mato CR (13), jis pakeičia jį NULL ir grąžina, bet UART's gauti buferis bus LF (10) char palikti, kai kitą kartą skambinti "uart_gets ()" , ir kad ženklas bus ištrauktas kaip pirmasis elementas Jūsų eilutę, iki H.
Jums teks susidoroti su visomis gautus simbolių, praplaukite jas (o ne, SBUF = 0
won't do, jūs turite padaryti manekeno skaityti vietoje).

Please
don't mind me, kad jūsų kodavimo stilių tik kyla dėl klaidų.Nors teisinga, jūsų pasirinkimas pavadinimas oficialią parametrus tuo pačiu pavadinimu, kaip pasauliniu lygiu yra labai klaidinantys, ne paminėti Patamsėjimais sąmonės ir likusia kodas.I hope you realize that this will only work in this particular case and in no way should you use this code as a template for general purpose. Arturas

 

Welcome to EDABoard.com

Sponsor

Back
Top