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



Teraz jest 17 sty 2021, o 22:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
 Tytuł: STM32F302 UART
PostNapisane: 6 lis 2020, o 18:34 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

Cześć,

Chciałem sobie wysłać jedną literkę np "s" przez USART w tym STM`ie.
Zerknijcie proszę n kod i podpowiedzcie czego tam brakuje. bo nic na port nie wychodzi.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2020, o 20:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

Ustaw jeszcze funkcje alternatywna dla pinu tx



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2020, o 21:53 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

No jest. Piąty bit w GPIOA MODER
Czy źle to czytam?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2020, o 22:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

Musisz pod pin podpiac uart.
Zobacz do na rejestry GPIOx_AFRL i GPIOx_AFRH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2020, o 23:17 
Offline
Użytkownik

Dołączył(a): 17 mar 2020
Posty: 62
Pomógł: 5

dokładnie - włączyłeś tryb alternatywny, ale nie ustawiłeś dobrze jaki to tryb - czasem fartem akurat na "0" jest to co się chce i nie zauważa się wtedy tego błędu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 07:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

GPIOx_AFRL i GPIOx_AFRH znajdziesz w RM mikrokontrolera a w DS znajdziesz tabelke z ktorej odczytasz jaka funkcja alternatywna (AFx) podpina TX pod dany pin.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 18:22 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

Dzieki Jeżu !

Czyli musze w AF7 włączyć pin 2 poru A.
AF7 ma cztery bity. Wpisuje tam numer pinu?
Brakuje mi w dokumentacji objaśnienia tej tabeli .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 21:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

Taki przykład dla lakiegoś uc.

Obrazek

Na pinie PA2 możesz mieć kilka funkcji. między innymi USART2_TX. Więc musisz dla tego pinu wybrać funkcje alternatywną AF7

Masz 2 rejestry: GPIOA_AFRL (dla pinów 0 - 7) i GPIOA_AFRH (dla pinów 8-15)

więc wpisujesz

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- Do AFR2 wpisujesz 7 - funkcja alternatywna nr 7 dla pinu 2 portu A

Lepiej będzie jak będziesz korzystał z plików CMSIS bo kod jest bardziej czytelny


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 21:18 
Offline
Użytkownik

Dołączył(a): 29 gru 2013
Posty: 64
Pomógł: 2

Numer funkcji alternatywnej dla danego pinu z podziałem na porty znajduję się w Datasheet'cie procka. Szukaj pod: Alternate functions selected through GPIOX... :)

EDIT: w sumie widać to u Jeża na screenie :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 21:50 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

OK.
Ustawiłem AFR tylko nie (7<<11) a (7<<8)
Jednak czegoś nadal brakuje w moim kodzie bo nie działa. Czegoś jeszcze nie włączyłem.
...a zegar? ten wpis do BRR wystarcza ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lis 2020, o 22:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

BRR ustawiasz dla usart1 a pozniej CR1 dla usart2.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2020, o 10:01 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

Dzięki, teraz działa, ale jednak <<8 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2020, o 12:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lis 2015
Posty: 207
Pomógł: 18

Cytuj:
ale jednak <<8

Dlatego warto korzystac z definicji CMSIS. Mozna uniknąć takich pomyłek. Pozs tym latwiej sie czyta kod niż dekodowanie zapisów (1<<17)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2020, o 14:37 
Offline
Użytkownik

Dołączył(a): 30 paź 2016
Posty: 42
Lokalizacja: Poznań
Pomógł: 0

Może i się czyta łatwiej, ale jak mam pisać, to wolę w ten sposób ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2020, o 14:40 
Offline
Użytkownik

Dołączył(a): 17 mar 2020
Posty: 62
Pomógł: 5

tylko że napiszesz to raz, a czytać w przyszłości będziesz kilkanaście + potencjalnie też inne osoby - więc chyba to czytelność warto optymalizować



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: 15 ] 

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