Configuration
Le STM32L475 dispose de plusieurs UART, qui ont la possibilité de gérer d'autres protocoles (synchrones). Ils sont donc appelés USART.
Vous allez devoir envoyer des caractères sur le port série USART1 du processeur. Pour cela, il va falloir le piloter manuellement (pas de libC, pas de printf
!). Les registres clefs sont indiqués ci-dessous (cf. pages 1376 et suivantes du manuel de référence). Il est aussi conseillé de lire la partie sur le fonctionnement de l'USART.
❎ Dans un fichier uart.c
, écrivez une fonction void uart_init()
qui se charge de :
- Passer les broches RX et TX du port B (à vous de trouver lesquelles) en mode USART (ne pas oublier d'activer l'horloge du PORTB par la même occasion). Pour cela, configurez ces broches en mode Alternate Function (registre
MODER
), et donnez le bon numéro de fonction dans le registreAFRL
(numéro que vous trouverez dans la datasheet du processeur). - Activer l'horloge du port série USART1.
- Spécifier que l'horloge sur laquelle se base l'USART1 pour timer chaque bit est PCLK : registre
RCC->CCIPR
. - Faire un reset du port série par précaution : registre
RCC->APB2RSTR
. - Configurer la vitesse du port série à 115200 bauds : registres
USART1->BRR
. - Configurer l'oversampling à 16, et mettre le port série en mode 8N1 : à vous de trouver les bons registres !
- Activer l'USART1, le transmetteur et le récepteur.
Attention : cette configuration doit être faite alors que l'USART1 est désactivée !