zoukankan      html  css  js  c++  java
  • 树莓派 -- 按键 (key)使用BCM2835 gpio library

    BCM2835 GPIO library介绍

    This is a C library for Raspberry Pi (RPi). It provides access to GPIO
    and other IO functions on the Broadcom BCM 2835 chip, as used in the
    RaspberryPi, allowing access to the GPIO pins on the 26 pin IDE plug
    on the RPi board so you can control and interface with various
    external devices.

    其链接如下
    http://www.airspayce.com/mikem/bcm2835/

    在之前的文章中也有介绍
    https://blog.csdn.net/feiwatson/article/details/80781683
    https://blog.csdn.net/feiwatson/article/details/80779159

    利用其来实现简单按键应用。代码如下

    /* key.c
     * you can build this like: 
     * gcc -Wall key.c -o key -lbcm2835
     * sudo ./key
    */
    #include <bcm2835.h>
    #include <stdio.h>
    
    char KEY = 20;
    unsigned char i;
    int main(int argc, char **argv)
    {
        if (!bcm2835_init())return 1;
        bcm2835_gpio_fsel(KEY, BCM2835_GPIO_FSEL_INPT);
        bcm2835_gpio_set_pud(KEY, BCM2835_GPIO_PUD_UP);
        printf("Key Test Program!!!!
    ");   
        while (1)
        {
            if(bcm2835_gpio_lev(KEY) == 0)
            {  
                printf ("KEY PRESS
    ") ;
                while(bcm2835_gpio_lev(KEY) == 0)
                    bcm2835_delay(100);
            }
            bcm2835_delay(100);
        }
        bcm2835_close();
        return 0;
    }

    交叉编译makefile如下,(也可以选择直接在树莓派板上编译)

    CC = /home/xxx/Raspberry/tools-master/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc-4.9.3
    CFLAGS = -I./ -L./lib
    CFLAGS += -Wall
    key:key.c
        $(CC) $(CFLAGS)  key.c -o key -lbcm2835
    clean:
        rm key event

    如果直接在板上编译,

     gcc -Wall key.c -o key -lbcm2835

    运行, 按下按键后,输出“KEYPRESS”

    pi@raspberrypi:~/learning/bcm2835/key_test $ ./key 
    Key Test Program!!!!
    KEY PRESS
    KEY PRESS
    KEY PRESS
    KEY PRESS
    KEY PRESS
    

    硬件接线:
    这里写图片描述

  • 相关阅读:
    一个菜鸟把Vue项目打包为APP的道路
    echarts
    no module named selenium
    git使用教程
    JDK安装与环境变量配置
    家具摆件
    家店分会场
    双十一电器城
    室内门锁
    http://cjy.suda.edu.cn/File.aspx?id=427
  • 原文地址:https://www.cnblogs.com/feiwatson/p/9478210.html
Copyright © 2011-2022 走看看