码迷,mamicode.com
首页 > 其他好文 > 详细

wiringPi的GPIO操作

时间:2020-05-01 18:19:04      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:argv   EAP   ret   ati   操作   code   names   io操作   dpi   

talk is cheap,show me your code.

#include<iostream>
#include<wiringPi.h>
#include <signal.h>

using namespace std;

// LED Pin - wiringPi pin 0 is BCM_GPIO 17.
#define	LED	0

void setup();

const int LEDPin = 11;
const int ButtonPin = 1;

static void sig_usr(int);

int main(int argc,char** argv)
{
    int dly=-1;
    if(argc>1)
        dly=atoi(argv[1]);
    if(dly<0)
        dly=500;
        
    wiringPiSetup();
    pinMode(LED, OUTPUT);
    
    if(signal(SIGINT,sig_usr)==SIG_ERR)
    {
        cout<<"Can not catch SIGINT."<<endl;
        exit(1);
    }
    
    while(1)
    {
        digitalWrite (LED, HIGH);
        cout<<"LED ON"<<endl;
        delay (dly);
        digitalWrite (LED, LOW);
        cout<<"LED OFF"<<endl;
        delay (dly);
    }
    
    
    return 0;
}

static void sig_usr(int signo)
{  
    if(signo==SIGINT)
    {
        cout<<"Catch SIGINT, turn off LED and Exit."<<endl;
        digitalWrite (LED, LOW);
        exit(0);
    }
}

  不使用signal也是没啥问题的,但是这样的话,当使用Ctrl+C结束程序的时候,LED可能是点亮的,也可能是关闭的,这就有点不太好,最好是退出的时候做一些清理方面的工作。当然了,如果是使用Ctrl+\退出的,那就还是老样子。

wiringPi的GPIO操作

标签:argv   EAP   ret   ati   操作   code   names   io操作   dpi   

原文地址:https://www.cnblogs.com/castor-xu/p/12814153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!