c - 树莓派 : printf() doesn't work with wiringPi

标签 c printf raspberry-pi gpio

我正在尝试使用 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/

相关文章:

c++ - 这个洗牌算法有什么问题吗?

c - syscalls.h 中的 sys_ 函数未定义

c - printf 语句中用于宽度和精度的子说明符

c - fPrintf 一个整数

matlab - 我可以在树莓派上运行 matlab 吗?

c - C 语言中使用 https url 向主机发出 http post 请求返回 HTTP 302

c - 不兼容的指针类型在 C 中传递参数?

使用 R 中的 sink 和 sprintf 输出删除 [1]

在Linux中编译C代码

raspberry-pi - Raspberry Pi 脚本启动顺序