trace_printf无法使用浮点数

时间:2016-09-29 07:52:11

标签: c eclipse floating-point microcontroller stm32

使用Eclipse IDE对STM32F0xx Discovery板进行编程。尝试做一些数学计算购买TIM2时钟计数器并将其除以48000000以达到一段时间。

如果我将我的工作变量声明为uint32_t,它会给我截断的答案。我想要的是一个十进制值,我认为将它声明为浮点数可以解决问题,但是当我这样做时,没有任何内容被打印出来。

variable = (TIM2->CNT)/48000000;
trace_printf("%i",variable);

使用uint32_t声明的变量,但是将占位符更改为%f或者甚至保留为浮动声明而产生nada。是否需要将其转换为浮点数?

自从我完成任何C编码以来已经很久了,我确信在使用CooCox之前我遇到了同样的问题,但我不记得当时的解决方案是什么。

1 个答案:

答案 0 :(得分:0)

TY @harmic! http://www.ece.uvic.ca/~brent/ceng355/printf.html

  

使用trace_printf打印浮点数

     

要启用trace_printf打印浮点数,请在项目中执行以下操作。

     
      
  • 在项目菜单项下选择属性选项。
  •   
  • 展开C / C ++构建部分并选择设置选项。
  •   
  • 现在选择标签"工具设置"。在" Cross ARM C ++ Linker"选择杂项。
  •   
  • 点击显示"使用浮动与纳米printf(-u_printf_float)的复选框。
  •   
  • 现在点击“应用”,然后单击“确定”。
  •   
  • 重建项目,现在应打印浮点数。
  •   
     

请参阅下面的图片了解配置设置和包含结果的示例代码。

enter image description here

这正是我所需要的。我会在课堂上宣传这个链接。