Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 sty 2025, o 13:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 28 sty 2015, o 10:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 mar 2013
Posty: 38
Lokalizacja: Gdynia
Pomógł: 1

Witam

Mam problem z odbieraniem wiecej niż jednego bajta w USART, korzystam z przerwań.
Petla główna wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


konfiguracja przerwania:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


konfiguracja USARTA

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


przerwanie :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


w terminalu wpisuje
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W tym momencie w debuggerze widzę że wchodzi mi do przerwania, odczytuje pierwszą cyfre /*1*/, zapala diode /*2*/, natomiast po przejściu tej pętli, i wejściu do przerwania jeszcze raz if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) pokazuje RESET.
We wnętrzu funkcji problem występuje w lini bitpos &= USARTx->ISR; w tym momencie jest tak że
"USARTx->ISR" 0b11000000000000011011000
"bitpos" 0b100000

w Reference manual https://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCIQFjAA&url=http%3A%2F%2Fwww.st.com%2Fweb%2Fen%2Fresource%2Ftechnical%2Fdocument%2Freference_manual%2FDM00031936.pdf&ei=h6_IVPyVOdXzauvcgdgP&usg=AFQjCNF9ugmbHfuVEZ4HCkzIzQnK7lfdhg&sig2=Teiux6Zq3cUDElDfYzYh2A
na stronie 732 jest napisane wyraźnie że:

Bit 6 TC: Transmission complete
0: Transmission is not complete
1: Transmission is complete

tylko dlaczego ma mieć to na wpływ odbieranie skoro to się tyczy transmisji?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


nie powinno być tak?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 18 minutach ]

Aaaaa przepraszam zamuliłem, ustawiłem tak breakpointa ze mi się zawieszał w przerwaniu ;/
Debugowanie Uarta eh...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO