我正在为NXP MCU板开发代码。我必须使用C编程语言。
我的目标: 使用超声波传感器测量距离。预定义距离= 180厘米。输出应为剩余距离(以百分比表示)。例如:如果传感器测得的距离为100cm,则计算后的输出应为:44.44%如果测得的距离为180+,则计算后的输出应为负百分比。
问题:我开发了以下代码。在执行代码中的数学运算(数字操作)之前,传感器按预期以 cm 给出输出,这在TeraTerm上可以观察到。但是,当我在代码中添加一些与数学相关的行时,输出现在为空白。传感器工作正常,但是将公式添加到代码中后,我无法获得计算出的输出。以下是我的代码:
#include "mbed.h"
#include "hcsr04.h"
HCSR04 usensor1(A4,A5);
unsigned int distance;
float dist_remaining;
float dist_percent;
int main()
{
int a = 180;
while(1)
{
usensor1.start();
wait_ms(500);
distance = usensor1.get_dist_cm();
dist_remaining = a-distance;
dist_percent = (dist_remaining/180)*100;
printf("\n\rPercent remaining: ", dist_percent );
}
}
在这里计算从传感器获得的int distance
时,是否可以检查并告诉我吗?我对C编程语言不是很熟悉。因此,感谢您提供的任何帮助。谢谢您的时间和协助。
答案 0 :(得分:2)
感谢Dmitri,更改以下printf
行有效:
printf("\n\rPercent remaining: %f\n", dist_percent);
也感谢FredK和Yunnosch。感谢您的帮助。