Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega88][Linux][BASCOM] RS232, Open USART.

MixMaxMichał 31 Maj 2009 16:13 1525 2
  • #1 31 Maj 2009 16:13
    MixMaxMichał
    Poziom 2  

    Witam. Najpierw na Windowsie napisałem prosty program w bascomie do komunikacji przez rs232(Program ma dwie komendy pierwsza odbiera coś przez rs232 a druga to wysyla i tak w kułko), w terminalu od bascoma wszystko działa. Gdy użyłem Open USART Termianal, nic się nie działo więc wyłączyłem go i przeszłem z powrotem do terminala w bascomie gdy nacisnąłem enter mikro kontroler odesłał mi to co do niego wysłałem z Open USART Termianal, więc najprawdopodobniej terminal z bascoma po wciśnięciu enter wysyła coś co powoduje że mikro kontroler zakańcza odbieranie i przechodzi dalej. Postanowiłem przełączyć się na Linuksa i sprawdzić czy tu działa. Doszedłem do czegoś takiego.

    Code:
     stty 9600 -parenb cs8 -cstopb |cat < /dev/ttyS0

    Komenda ta odbiera to co nadaje mikro kontroler, i działa .
    Ta komenda powinna wysyłać to co jest w cudzysłowach.
    Code:
     stty 9600 -parenb cs8 -cstopb |echo -n "dfgdfgdgfdfg" >/dev/ttyS0 

    I wysyła bo sprawdzałem diodą na porcie, ale żeby mikro kontroler poszedł dalej musi coś dostać przez rs232 ale nie wiem co. Może da się z konsoli wysłać przez rs232 kod klawisza Enter.

    0 2
  • #2 31 Maj 2009 18:10
    szaleniec
    VIP Zasłużony dla elektroda

    Zamień
    echo -n "dfgdfgdgfdfg" >/dev/ttyS0
    na
    echo "dfgdfgdgfdfg" >/dev/ttyS0

    Przełącznik "n" powoduje niewysyłanie znaku końca linii.

    0
  • #3 01 Cze 2009 15:27
    MixMaxMichał
    Poziom 2  

    Tak rzeczywiście teraz działa. A jak w drugą strone bo jak włączę

    Code:
     stty 9600 -parenb cs8 -cstopb |cat < /dev/ttyS0

    to ta funkcja ciągle odbiera znaki. co powinienem wysłać z mikro procesora aby komputer przestał czytać z portu.

    0