树莓派3B 之GPIO口

这一篇我们主要讲树莓派的GPIO口控制。

还是用了wirningPi这个库。

我们用了6个Pin脚来模拟按键。

wirningPi的24-29脚。(因为之后我们会模拟选择,确认,上下左右)

GPIO.cpp:

#include "bsp_key.h"

//设置GPIO口模式
void Key_StatusSet(void)
{
    //初始化库
    wiringPiSetup();

    //设置输入模式
    pinMode(SW5_OPTION, INPUT);
    pinMode(SW2_OK,     INPUT);
    pinMode(SW6_UP,     INPUT);
    pinMode(SW4_LEFT,   INPUT);
    pinMode(SW1_DOWN,   INPUT);
    pinMode(SW3_RIGHT,  INPUT);

    //设置上拉模式
    pullUpDnControl(SW5_OPTION, PUD_UP);  // pull up
    pullUpDnControl(SW2_OK,     PUD_UP);
    pullUpDnControl(SW6_UP,     PUD_UP);
    pullUpDnControl(SW4_LEFT,   PUD_UP);
    pullUpDnControl(SW1_DOWN,   PUD_UP);
    pullUpDnControl(SW3_RIGHT,  PUD_UP);
}


//检查按钮是否被按下
int Key_PressCheck(int key_num)
{
    if(digitalRead(key_num) == 0)  // Press
    {
        delay(200);                //delay for debounce
        while(digitalRead(key_num) == 0);
        return 1;
    }
    else
        return 0;
}

//----------------------test-----------------------------
int key1 = 0,key2 = 0,key3 = 0,key4 = 0;
void test(void)
{


    if(Key_PressCheck(SW5_OPTION) == 1)
        key1++;
    else if(Key_PressCheck(SW3_RIGHT) == 1)
        key2++;
    else if(Key_PressCheck(SW4_LEFT) == 1)
         key3++;
    else if(Key_PressCheck(SW2_OK) == 1)
         key4++;
    else
         printf("None Key Press!!!\n");

    printf("key1 = %d ,key2 = %d ,key3 = %d ,key4 = %d \n",key1,key2,key3,key4);
}
//-----------------------------------------------------

 

GPIO.h

#ifndef BSP_KEY_H
#define BSP_KEY_H

#include <stdio.h>
#include <wiringPi.h>

//#define KEY1_SELECT     26
//#define KEY2_ADD        27
//#define KEY3_SUB        28
//#define KEY4_CO
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值