我正在尝试使用 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
默认情况下通常是 line-buffered,这意味着它会尝试将数据写入基础文件直到换行。但是因为你从不打印换行符,stdout
只会缓冲您的文本,直到空间不足。
您可以通过在格式字符串中添加换行符(即 "%d\n"
)或调用 fflush
来解决此问题在 stdout
打印后。
关于c - 树莓派 : printf() doesn't work with wiringPi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30711701/