ATNEL tech-forum
https://forum.atnel.pl/

STM32F302 UART
https://forum.atnel.pl/topic23419.html
Strona 1 z 1

Autor:  Wojtek Apel [ 6 lis 2020, o 18:34 ]
Tytuł:  STM32F302 UART

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.

Autor:  jez2000 [ 6 lis 2020, o 20:38 ]
Tytuł:  Re: STM32F302 UART

Ustaw jeszcze funkcje alternatywna dla pinu tx

Autor:  Wojtek Apel [ 6 lis 2020, o 21:53 ]
Tytuł:  Re: STM32F302 UART

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

Autor:  jez2000 [ 6 lis 2020, o 22:34 ]
Tytuł:  Re: STM32F302 UART

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

Autor:  landrynek [ 6 lis 2020, o 23:17 ]
Tytuł:  Re: STM32F302 UART

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:  jez2000 [ 7 lis 2020, o 07:54 ]
Tytuł:  Re: STM32F302 UART

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

Autor:  Wojtek Apel [ 7 lis 2020, o 18:22 ]
Tytuł:  Re: STM32F302 UART

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 .

Autor:  jez2000 [ 7 lis 2020, o 21:03 ]
Tytuł:  Re: STM32F302 UART

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:  wonsz [ 7 lis 2020, o 21:18 ]
Tytuł:  Re: STM32F302 UART

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:  Wojtek Apel [ 7 lis 2020, o 21:50 ]
Tytuł:  Re: STM32F302 UART

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 ?

Autor:  jez2000 [ 7 lis 2020, o 22:14 ]
Tytuł:  Re: STM32F302 UART

BRR ustawiasz dla usart1 a pozniej CR1 dla usart2.

Autor:  Wojtek Apel [ 8 lis 2020, o 10:01 ]
Tytuł:  Re: STM32F302 UART

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

Autor:  jez2000 [ 8 lis 2020, o 12:29 ]
Tytuł:  Re: STM32F302 UART

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)

Autor:  Wojtek Apel [ 8 lis 2020, o 14:37 ]
Tytuł:  Re: STM32F302 UART

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

Autor:  landrynek [ 8 lis 2020, o 14:40 ]
Tytuł:  Re: STM32F302 UART

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ć

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/