c++ 通过Nucleo板F070RB阅读电位计值

mm9b1k5b  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在尝试读取连接到Nucleo板(https://os.mbed.com/platforms/ST-Nucleo-F072RB/)引脚PA_5的电位计的电压输出。
AnalogIn发出浮点数。
下面是我的代码:

#include "mbed.h"

AnalogIn myPot(PA_5);

float value = 0.0f;

int main()
{
    while(true)
    {
        value = myPot;
        printf("%f\n", value);
        thread_sleep_for(2000);
    }
}

我遇到的问题是,当我试图显示"值"时,它只显示" % f"。
做错了什么?
因此,我期望浮点值介于0和5V之间。

h7appiyu

h7appiyu1#

Printf占用嵌入式系统大量资源,打印浮点数更是如此,因此mbed在printf/sprintf中默认禁用了打印浮点数,因为某些目标可能无法支持它。
您可以通过设置配置参数来启用浮点数的打印:minimal-printf-enable-floating-pointtrue
或者,您可以将模拟输入读取为16位整数并打印出来。
最后,我应该补充的是,这不会打印0 V-〉5V之间的浮点值。它将打印0 -〉1之间的值,这是参考电压的百分比。如果你想打印它作为一个电压,你可以乘以参考电压。
请参见mbed readme about minimal-printf

相关问题