Quindi la settimana scorsa ho lavorato per ottenere i messaggi UART inviati da un STM32F407 e leggerlo sul mio laptop tramite un cavo da RS232 a USB brutto usando la termite.
Ho usato STMCube per generare codice e aggiungerlo leggendo le istruzioni pertinenti nella parte superiore del file "stm32f4xx_hal_uart.c" (e guardando molti video e leggendo online).
Ho controllato il messaggio trasmesso su un oscilloscopio e corrisponde alla sua rappresentazione ASCII.
Ad esempio, invio 'Q' che è 0101 0001, ricevo 'W' che è 0101 0111. La lettura sull'ambito mostra:
Uscita della termite per lo stesso segnale visualizzato sull'oscilloscopio.
Ho confermato che baud rate / parità / HWcontrol corrispondono sulla termite e nel mio codice.
Per ricevere il carattere corretto ho provato ad abbassare e aumentare i baud rate.
Ho provato diversi set di caratteri per cercare di trovare un modello che causi la visualizzazione di caratteri errati.
Inoltre ho provato diversi terminali come su Putty o Teraterm.
1
simbolo con lo sfondo giallo a sinistra della traccia - questo è il livello 0V) e quindi impulsi sotto 0V. Ciò non sarebbe vero per un segnale logico proveniente direttamente da un STM32 e, in effetti, non è vero. Guardando nell'angolo in basso a sinistra, hai impostato il canale 1 sull'accoppiamento CA (questo è il ~
simbolo che vedi lì). Il segnale è veramente alto al minimo e pulsa a circa 0 V. Utilizzare l' accoppiamento CC per una visione sana di quel segnale.