【问题标题】:Cant see printf in mplabX IDE anywhere... Why?在任何地方都看不到 mplabX IDE 中的 printf...为什么?
【发布时间】:2018-06-20 21:11:55
【问题描述】:

我在一个函数中尝试了这个,但我在 MPLAB X IDE 中看不到任何结果。为什么?我在哪里可以找到打印的结果?我正在使用 pic32 Curiosity 开发板和 XC32。

int a = 5;
int b = 10;
printf("a = %d\nb = %d\n", a, b);

有什么信息吗?提前致谢!

【问题讨论】:

  • 考虑代码在哪里运行
  • 我希望在输出窗口中看到它,但那里什么都没有...如果我只想打印一个简单的文本来帮助我调试,我是否必须使用模拟器?跨度>

标签: c microchip mplab pic32


【解决方案1】:

printf 始终使用 UART 作为 STDOUT。 如果您使用模拟器,您可以在项目属性下启用 UART IO。如果您想在文件或输出窗口中查看打印数据,请知道这是您的选择。

【讨论】:

  • 我认为没有模拟器也可以使用输出窗口...我们都从愚蠢的错误中吸取教训。
【解决方案2】:

为什么?
因为 mplabX IDE 无法访问您的硬件。我猜你使用调试(你没有写),那么你的调试(单元?硬件?软件?)可能不支持它。

在哪里可以找到打印结果?
这取决于您如何编写 _mon_putc() 函数。 By default, MPLAB® XC32's libraries use UART2 for STDOUT. 例如PIC32MZ EF CURIOSITY DEVELOPMENT BOARD UART2(信号 U2TX)将位于 MCU 的引脚 7 上,即 J11 上的引脚 4 或 J10 上的引脚 13 或连接器 J14 上的引脚 5。最好的办法是购买便宜的 UARTUSB 转换器来读取该 UART。

有什么信息吗?
当然。
(XC32) How do I instruct printf to output to UART1 or other UART channels instead of UART2?
Debugging: Can I redirect printf or putchar to the MPLAB X console?
stdio over uart1 example
mplab 模拟器使用 uart1 作为标准输出,模拟器将模拟的“阅读器”连接到该 uart,该 uart 显示它在 mplab 控制台上的输出。我猜你的真实硬件上的 uart 无论如何都没有连接到计算机上。

【讨论】:

    猜你喜欢
    • 2020-01-10
    • 1970-01-01
    • 2016-08-11
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多