树莓派 -- 按键 (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!!!!\n");
while (1)
{
if(bcm2835_gpio_lev(KEY) == 0)
{
printf ("KEY PRESS\n") ;
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
硬件接线:
树莓派 -- 按键 (key)使用BCM2835 gpio library的更多相关文章
- 关于RPi.GPIO、BCM2835 c library、WiringPi、Gertboard
1.RPi.GPIO//RPi.GPIO-0.5.5.tar.gz 开发者:python官网:https://www.python.org/ 官网:https://pypi.python.org/py ...
- stm32开发笔记(三):stm32系列的GPIO基本功能之输出驱动LED灯、输入按键KEY以及Demo
前言 stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的. 本章讲解使用GPIO引脚功能驱动LED灯和接收Key按钮输入. STM ...
- OpenWRT中的按键和灯的GPIO控制实现_转
本文转自:OpenWRT中的按键和灯的GPIO控制实现 基于BarrierBreaker版本,基于AR9331 AP121 Demo单板 来进行描述 1.灯 A.在mach-ap121.c中,定义了灯 ...
- FPGA与simulink联合实时环路系列——实验三 按键key
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...
- 树莓派.使用Node.js控制GPIO
树莓派上的40个GPIO是最好玩的东西 它们可以被C,/C++, Python, Java等语言直接控制 现在就来看看怎么用Node.js做到同样的事情 在试验之前, 请先安装好Node.js, 具体 ...
- OpenWRT中的按键和灯的GPIO控制实现
基于BarrierBreaker版本,基于AR9331 AP121 Demo单板 来进行描述 1.灯 A.在mach-ap121.c中,定义了灯所对应的GPIO定义: #define AP121_GP ...
- Java Map按键(Key)排序和按值(Value)排序
Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V ...
- Pi# - Raspberry Pi GPIO Library for .NET
Project Description Pi# (pronounced “Pi Sharp”) is a library to expose the GPIO functionality of the ...
- 树莓派学习路程No.1 GPIO功能初识 wiringPi安装
WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3.wiringPi使用C或者C++开发并且可以被其他语言包转,例如python.ruby或者PHP等.Wiri ...
随机推荐
- zoj 2587 Unique Attack【最小割】
拆点拆魔怔了 直接按照原图建就行,这里有个小技巧就是双向边的话不用按着板子建(u,v,c)(v,u,0)(v,u,c)(u,v,0),直接建(u,v,c)(v,u,c)会快十倍!800ms->8 ...
- 极简版OKEX比特币跨期对冲策略
策略特点 只做正套,反套可以修改下,合约调换一下,即是反套. 添加两个 交易所对象,第一个季度,第二个当周. 精简了所有能简化的代码,优化空间还很大,教学策略谨慎实盘,跨期有一定风险. 欢迎反馈BUG ...
- 浅谈扩展欧几里得[exgcd] By cellur925
关于扩展欧几里得从寒假时就很迷,抄题解过了同余方程,但是原理并不理解. 今天终于把坑填上了qwq. 由于本人太菜,不会用markdown,所以这篇总结是手写的(什么).(字丑不要嫌弃嘛) ****** ...
- [POI2011]Temperature
Description The Byteotian Institute of Meteorology (BIM) measures the air temperature daily. The mea ...
- AC自动机 HDOJ 5384 Danganronpa
题目传送门 /* 题意:多个文本串,多个模式串在每个文本串出现的次数 AC自动机:这就是一道模板题,杭电有道类似的题目 */ /************************************ ...
- Object流
- hbase rpc这点事
年前的时候系统梳理了一下hbase rpc的实现,并且对组里的小伙伴做了一次分享.趁着热乎劲还没完全消失殆尽,准备赶紧记录下来. hbase中rpc概况 作为一个分布式系统,hbase的设计是典型的m ...
- 移动端UI自动化Appium测试——Windows系统Appium环境配置
1.安装JDK,官网下载即可,这里用的1.8,环境变量配置 2.安装Android sdk,API >= 17,环境变量配置 3.安装Nodejs,官网http://nodejs.org/dow ...
- CSS3实现边框线条动画特效
<div class="box-line"></div> CSS代码 .box-line, .box-line::before, .box-line::af ...
- CCF|分蛋糕|Java
import java.util.Scanner; public class tyt { public static void main(String[] args) { Scanner in = n ...