Así que la semana pasada estuve trabajando para recibir mensajes UART enviados desde un STM32F407 y leerlos en mi computadora portátil a través de un cable ugreen RS232 a USB usando termitas.
He utilizado STMCube para generar código y agregarlo leyendo las instrucciones relevantes en la parte superior del archivo "stm32f4xx_hal_uart.c" (y viendo muchos videos y leyendo en línea).
He comprobado el mensaje transmitido en un osciloscopio y coincide con su representación ASCII.
Por ejemplo, envío 'Q' que es 0101 0001, recibo 'W' que es 0101 0111. La lectura en el alcance muestra:
Salida de termitas para la misma señal que se muestra en el osciloscopio.
He confirmado que las tasas de baudios / paridad / HWcontrol coinciden en termitas y en mi código.
Para recibir el carácter correcto, he intentado reducir y aumentar las tasas de baudios.
He intentado diferentes conjuntos de caracteres para tratar de encontrar un patrón que haga que se muestren caracteres incorrectos.
Además, he probado diferentes terminales como Putty o Teraterm.
1
símbolo con el fondo amarillo a la izquierda del trazo, eso es el nivel de 0V) y luego pulsa por debajo de 0V. Eso no sería cierto para una señal lógica directamente desde un STM32 y, de hecho, no es cierto. Mirando en la esquina inferior izquierda, ha configurado el canal 1 para acoplamiento de CA (ese es el ~
símbolo que ve allí). La señal está realmente en ralentí alto y pulsando alrededor de 0V. Utilice el acoplamiento de CC para obtener una vista sensata de esa señal.