Donc, la semaine dernière, j'ai travaillé à obtenir des messages UART envoyés à partir d'un STM32F407 et à les lire sur mon ordinateur portable via un câble ugreen RS232 vers USB à l'aide de termites.
J'ai utilisé STMCube pour générer du code et y ajouter en lisant les instructions pertinentes en haut du fichier "stm32f4xx_hal_uart.c" (et en regardant beaucoup de vidéos et en lisant en ligne).
J'ai vérifié le message transmis sur un oscilloscope et il correspond à sa représentation ASCII.
Par exemple, j'envoie 'Q' qui est 0101 0001, je reçois 'W' qui est 0101 0111. La lecture sur la portée montre:
Sortie de termites pour le même signal que celui affiché sur l'oscilloscope.
J'ai confirmé que les taux de transmission / parité / HWcontrol correspondent sur les termites et dans mon code.
Pour recevoir un caractère correct, j'ai essayé d'abaisser et d'augmenter les vitesses de transmission.
J'ai essayé différents jeux de caractères pour essayer de trouver un motif qui provoque l'affichage de mauvais caractères.
De plus, j'ai essayé différents terminaux tels que Putty ou Teraterm.
1
symbole avec le fond jaune à gauche de la trace - c'est le niveau 0V) puis des impulsions en dessous de 0V. Ce ne serait pas vrai pour un signal logique provenant directement d'un STM32 et, en effet, ce n'est pas vrai. En regardant dans le coin inférieur gauche, vous avez défini le canal 1 sur le couplage AC (c'est le ~
symbole que vous voyez là-bas). Le signal tourne vraiment au ralenti haut et bat autour de 0V. Utilisez le couplage CC pour une vue saine de ce signal.