In der vergangenen Woche habe ich daran gearbeitet, UART-Nachrichten von einem STM32F407 zu senden und sie auf meinem Laptop über ein ugreen RS232-zu-USB-Kabel mit Termite zu lesen.
Ich habe STMCube verwendet, um Code zu generieren und zu ergänzen, indem ich die entsprechenden Anweisungen oben in der Datei "stm32f4xx_hal_uart.c" gelesen habe (und viele Videos angesehen und online gelesen habe).
Ich habe die übertragene Nachricht auf einem Oszilloskop überprüft und sie stimmt mit der ASCII-Darstellung überein.
Zum Beispiel sende ich 'Q' mit 0101 0001 und erhalte 'W' mit 0101 0111. Die Anzeige auf dem Bereich zeigt:
Termitenausgang für dasselbe Signal wie auf dem Oszilloskop angezeigt.
Ich habe bestätigt, dass die Baudraten / Parität / HW-Kontrolle auf Termite und in meinem Code übereinstimmen.
Um den richtigen Charakter zu erhalten, habe ich versucht, die Baudraten zu senken und zu erhöhen.
Ich habe verschiedene Zeichensätze ausprobiert, um ein Muster zu finden, bei dem falsche Zeichen angezeigt werden.
Zusätzlich habe ich verschiedene Terminals wie Putty oder Teraterm ausprobiert.
1
Symbol mit dem gelben Hintergrund links neben der Spur an - das ist der 0V-Pegel) und pulsiert dann unter 0V. Das wäre für ein Logiksignal direkt von einem STM32 nicht wahr, und tatsächlich ist es nicht wahr. In der unteren linken Ecke haben Sie Kanal 1 auf AC-Kopplung eingestellt (das ist das ~
Symbol, das Sie dort sehen). Das Signal ist wirklich im Leerlauf hoch und pulsiert auf etwa 0V. Verwenden Sie die Gleichstromkopplung, um eine vernünftige Ansicht dieses Signals zu erhalten.