Raspberry Pi: printf() 不适用于 wiringPi
Raspberry Pi: printf() doesn't work with wiringPi
我正在尝试使用 wiringPi 的简单代码,如下所示:
#include<wiringPi.h>
#include<stdio.h>
int main(void){
int i;
wirintPiSetup();
pinMode(0,OUTPUT); //a single LED
pinMode(8,INPUT); //tactile switch
for(;;){
delay(500);
//push tactile switch and LED is turning on
if(digitalRead(8)) digitalWrite(0,0);
else digitalWrite(0,1);
printf("%d",digitalRead(8));
}
}
我预计 printf() 的结果会输出到控制台,
但它不起作用。
printf() 不能 运行 与 wiringPi API 同时使用?
编译时没有警告。 CPU 消耗始终低于 4%。
运行宁 Raspbian。
感谢您的宝贵时间!
stdout
默认情况下通常是 行缓冲 ,这意味着它会尝试将数据写入基础文件直到换行。但是由于您从不打印换行符,因此 stdout
只会缓冲您的文本,直到用完 space.
您可以通过在格式字符串中添加换行符(即 "%d\n"
)或在打印后在 stdout
上调用 fflush
来解决此问题。
我正在尝试使用 wiringPi 的简单代码,如下所示:
#include<wiringPi.h>
#include<stdio.h>
int main(void){
int i;
wirintPiSetup();
pinMode(0,OUTPUT); //a single LED
pinMode(8,INPUT); //tactile switch
for(;;){
delay(500);
//push tactile switch and LED is turning on
if(digitalRead(8)) digitalWrite(0,0);
else digitalWrite(0,1);
printf("%d",digitalRead(8));
}
}
我预计 printf() 的结果会输出到控制台, 但它不起作用。 printf() 不能 运行 与 wiringPi API 同时使用?
编译时没有警告。 CPU 消耗始终低于 4%。 运行宁 Raspbian。
感谢您的宝贵时间!
stdout
默认情况下通常是 行缓冲 ,这意味着它会尝试将数据写入基础文件直到换行。但是由于您从不打印换行符,因此 stdout
只会缓冲您的文本,直到用完 space.
您可以通过在格式字符串中添加换行符(即 "%d\n"
)或在打印后在 stdout
上调用 fflush
来解决此问题。