Envoi et réception
❎ Écrivez dans l'ordre les fonctions suivantes :
void uart_putchar(uint8_t c), qui attend que l'USART1 soit prêt à transmettre quelque chose, puis lui demande de l'envoyer (registresUSART1->ISRetUSART1->TDR)uint8_t uart_getchar(), qui attend que l'UART ait reçu un caractère puis le retourne (registresUSART1->ISRetUSART1->RDR)void uart_puts(const char *s), qui fait la même chose que puts sous Linuxvoid uart_gets(char *s, size_t size), qui fait la même chose quefgetssous Linux (sauf pour leEOF, qui n'a pas de sens pour un port série)
Remarques :
- Testez vos fonctions à chaque étape (= n'attendez pas d'avoir tout écrit pour tester).
- Si quelque chose ne marche pas, débuggez instruction assembleur par instruction assembleur.
- En réception, si vous avez une erreur de framing ou d'overrun, déclenchez une boucle sans fin.