logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega32 UART: Jak wyczyścić bufor przy komunikacji RS232 w C?

adi84_84 07 Lis 2011 19:06 3249 6
REKLAMA
  • #1 10113532
    adi84_84
    Poziom 14  
    Posty: 121
    Pomógł: 12
    Ocena: 8
    Witam wszystkich :)
    Postanowiłem zrobić sobie detonator bezprzewodowy 433MHz do odpalania moich petard ;) Komunikacja miedzy modułami to RS232.
    A to mój kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Mój problem jest taki:
    np: będąc na początku programu
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    przycisk KEY_START ma uzbroić ładunki(umożliwic odbieranie znaków po RS232),niestety wysłanie jakiegoś znaku z pilota jeszcze przed KEY_START
    uzbraja ładunki ponieważ kod z pilota jest już w buforze.
    Chciałbym skasować zawartość tego bufora po naciśnieciu przycisku niestety nie moge sobie z tym poradzić :cry:
  • REKLAMA
  • #2 10113694
    kriss68
    Poziom 20  
    Posty: 369
    Pomógł: 40
    Ocena: 37
    Z noty ATMEL'a:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 10113752
    adi84_84
    Poziom 14  
    Posty: 121
    Pomógł: 12
    Ocena: 8
    Zrobiłem tak niestety nie działa:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #4 10113890
    kriss68
    Poziom 20  
    Posty: 369
    Pomógł: 40
    Ocena: 37
    Pozostaje pytanie w jaki sposób odbierasz dane z rs'a?
  • REKLAMA
  • #5 10114018
    adi84_84
    Poziom 14  
    Posty: 121
    Pomógł: 12
    Ocena: 8
    Używam biblioteki pana Mirka.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #6 10114046
    kriss68
    Poziom 20  
    Posty: 369
    Pomógł: 40
    Ocena: 37
    To przy tej całej bibliotece najłatwiej będzie tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    I USART_Init( __UBRR ); Wywal z reszty kodu. Nie wiem czy ta biblioteka potrzebna jest do tak prostego zadania no ale ważne, że działa :)
  • #7 10114205
    adi84_84
    Poziom 14  
    Posty: 121
    Pomógł: 12
    Ocena: 8
    Dzieki bardzo,punkty lecą na twoje konto ;)

Podsumowanie tematu

✨ W dyskusji poruszono problem czyszczenia bufora UART w komunikacji RS232 przy użyciu mikrokontrolera Atmega32. Użytkownik przedstawił swój kod oraz próbował zastosować funkcję USART_Flush, jednak napotkał trudności w jej działaniu. Inni uczestnicy zasugerowali, aby upewnić się, jak dane są odbierane z RS232 oraz zaproponowali uproszczenie kodu, eliminując niepotrzebne elementy biblioteki. Ostatecznie, użytkownik uzyskał pomoc w poprawnym zainicjowaniu UART oraz w implementacji funkcji czyszczącej bufor.
Wygenerowane przez model językowy.
REKLAMA