【问题标题】:printf not working on C32 compilerprintf 在 C32 编译器上不起作用
【发布时间】:2013-08-28 17:40:32
【问题描述】:

为什么 printf 不能像 PIC18 那样在 PIC32 上工作?

例如,此代码在 PIC18 上运行良好,但在 PIC32 上运行良好,

printf("%lu",value);

使用 C32 编译器没有输出消息,我错过了什么?

【问题讨论】:

  • 您是否尝试过刷新流?
  • 不明白你的意思,顺便说一下我用的是MPLAB C32编译器。
  • printf 使用缓冲区,那么您是否尝试使用 fflush(stdout) 来查看要打印的内容是否仍在缓冲区中?
  • 我在printf后用fflush(stdout),什么都没看到。
  • PIC18、PIC32 上的 sizeof(unsigned)、sizeof(value)、sizeof(unsigned long) 有哪些 6 种尺寸?我怀疑答案会揭晓。

标签: c embedded microcontroller pic mplab


【解决方案1】:

PIC18 上的 sizeof(unsigned) 为 2
PIC32 上的 sizeof(unsigned) 为 4
我怀疑 value 不是 long unsigned 所以你有 UB

printf("%lu",value);

如果是这样,请确保格式说明符与变量类型匹配。

【讨论】:

  • 我的变量定义为 unsigned long
猜你喜欢
  • 2017-04-04
  • 2016-09-20
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多