如何修复 PlatformIO 串口监视器乱码输出

问题:

使用 PlatformIO 的 Monitor 功能时,你看到奇怪字符而不是打印的字符串,例如:

scrambled_output.txt
)�
�␜ܠ��J��1��1!y��!���!��

PlatformIO 串口监视器由于错误波特率显示乱码输出

解决方案

此问题几乎总是由于 Monitor 功能使用错误的 UART 速度而出现。你可以从我们上面截图中的日志看到:

miniterm_log.txt
--- Miniterm on /dev/ttyUSB0  9600,8,N,1 ---

PlatformIO 在此情况下使用 9600 波特 - 但你的微控制器以更快的速度发送数据(或很少以更慢的速度)。

大多数使用串行 IO 的固件使用 115200 波特,所以这是我建议首先尝试的,但如果不起作用,查找名为波特率或类似的配置选项,或类似这样的代码行

serial_begin.cpp
Serial.begin(57600);

在固件中。

为了更改监视器 UART 速度,打开 platformio.ini 并添加

platformio_monitor_setting.ini
monitor_speed = 115200

ESP32 的完整 platformio.ini 示例:

platformio_esp32_example.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200

之后,重启监视器功能。


Check out similar posts by category: Arduino, Electronics, Embedded, ESP8266/ESP32, PlatformIO, STM32