Então, na semana passada, estive trabalhando para receber as mensagens UART enviadas de um STM32F407 e lê-las no meu laptop através de um cabo verde RS232 para USB usando cupins.
Eu usei o STMCube para gerar código e adicioná-lo lendo as instruções relevantes na parte superior do arquivo "stm32f4xx_hal_uart.c" (e assistindo a vários vídeos e lendo on-line).
Verifiquei a mensagem transmitida em um osciloscópio e ela corresponde à sua representação ASCII.
Por exemplo, envio 'Q', que é 0101 0001, recebo 'W', que é 0101 0111. A leitura no escopo mostra:
Saída de cupins para o mesmo sinal exibido no osciloscópio.
Confirmei que as taxas de transmissão / paridade / HWcontrol estão correspondentes no cupim e no meu código.
Para receber o caráter correto, tentei diminuir e aumentar as taxas de transmissão.
Tentei conjuntos de caracteres diferentes para tentar encontrar um padrão que faz com que caracteres incorretos sejam exibidos.
Além disso, eu tentei diferentes terminais, como no Putty ou Teraterm.
1
símbolo com o fundo amarelo à esquerda do rastreamento - isso é 0V) e depois pulsa abaixo de 0V. Isso não seria verdade para um sinal lógico direto de um STM32 e, de fato, não é verdade. Olhando no canto inferior esquerdo, você definiu o canal 1 como acoplamento CA (esse é o ~
símbolo que você vê lá). O sinal é realmente em marcha lenta alta e pulsante para cerca de 0V. Use o acoplamento DC para obter uma visão sã desse sinal.