使用Eclipse IDE对STM32F0xx Discovery板进行编程。尝试做一些数学计算购买TIM2时钟计数器并将其除以48000000以达到一段时间。
如果我将我的工作变量声明为uint32_t,它会给我截断的答案。我想要的是一个十进制值,我认为将它声明为浮点数可以解决问题,但是当我这样做时,没有任何内容被打印出来。
variable = (TIM2->CNT)/48000000;
trace_printf("%i",variable);
使用uint32_t声明的变量,但是将占位符更改为%f或者甚至保留为浮动声明而产生nada。是否需要将其转换为浮点数?
自从我完成任何C编码以来已经很久了,我确信在使用CooCox之前我遇到了同样的问题,但我不记得当时的解决方案是什么。
答案 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)的复选框。
- 现在点击“应用”,然后单击“确定”。
- 重建项目,现在应打印浮点数。
请参阅下面的图片了解配置设置和包含结果的示例代码。
这正是我所需要的。我会在课堂上宣传这个链接。