我正在尝试一个使用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上运行。
耽误您时间,实在对不起!
发布于 2015-06-08 14:36:13
默认情况下,stdout通常是行缓冲的,这意味着它试图将数据写入基础文件直到换行符。但是,由于您从不打印换行符,stdout只会缓冲您的文本,直到它耗尽空间为止。
您可以通过在格式字符串(即"%d\n")中添加换行符,或者在打印后在stdout上调用fflush来解决这个问题。
https://stackoverflow.com/questions/30711701
复制相似问题