printf、fprintf 到 stdout 和 LOG 输出缺少字符

问题描述 投票:0回答:0

我正在使用 fprintf() 将某些传感器的测量值记录到文件或标准输出中。当记录到一个文件时,一切都按预期工作,但是当记录到标准输出时,字符被遗漏了。这是一个输出示例:

2023-03-09 20:58:11, 2, 25.0, 300, 2512, 448                                                              2023-03-09 20:59:26, 2, 25.0, 300, 2508, 4481, 25.0, 300, 2023-03-09 20:58:11, 0, 25.0, 300, 3380, 532                                       
2023-03-09 20:59:31, 2, 25.0, 300, 2508, 448023-03-09 20:59:26, 0, 25.0, 300, 3376, 531
2023-03-09 20:59:31, 1, 25.0, 300, 2543, 449.
2023-03-09 20:59:31, 0, 25.0, 300, 3376, 531.

仅添加缺少的换行符,如下所示:

2023-03-09 20:58:11, 2, 25.0, 300, 2512, 448                                                                2023-03-09 20:59:26, 2, 25.0, 300, 2508, 448
                     1, 25.0, 300, 
2023-03-09 20:58:11, 0, 25.0, 300, 3380, 532
2023-03-09 20:59:31, 2, 25.0, 300, 2508, 448
 023-03-09 20:59:26, 0, 25.0, 300, 3376, 531
2023-03-09 20:59:31, 1, 25.0, 300, 2543, 449
2023-03-09 20:59:31, 0, 25.0, 300, 3376, 531

该程序使用基于 esp-idf 控制台组件的命令行界面。

  • 处理器:ESP32S3
  • Esp-idf: V4.4
  • 主机:MAC OS BigSur
  • 集成开发环境:VSCode
  • 控制台输出通道:USB Serial/JTAG Controller

到目前为止我已经尝试过: 输出到 ESP-IDF 监视器 输出到屏幕串行终端 其他 mac 终端程序,如 serial.app 等。 修改任务优先级,包括控制台任务 改变波特率 将 UART ISR 函数放入 RAM printf 和变体而不是 fprintf

除了 REPL 和传感器任务之外,没有其他进程以任何方式使用串口。有没有人对日志或打印输出有类似的问题?我一直在到处搜索,但这似乎不是一个常见问题。 预先感谢您的帮助。

console printf esp32 esp-idf
© www.soinside.com 2019 - 2024. All rights reserved.