中职扩展资源包资料树莓派系列教程9按键Word文件下载.docx
- 文档编号:14773296
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:9
- 大小:16.61KB
中职扩展资源包资料树莓派系列教程9按键Word文件下载.docx
《中职扩展资源包资料树莓派系列教程9按键Word文件下载.docx》由会员分享,可在线阅读,更多相关《中职扩展资源包资料树莓派系列教程9按键Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
intmain(intargc,char**argv)
06
{
07
if
(!
bcm2835_init())return
1;
08
bcm2835_gpio_fsel(KEY,BCM2835_GPIO_FSEL_INPT);
09
bcm2835_gpio_set_pud(KEY,BCM2835_GPIO_PUD_UP);
10
printf("
KeyTestProgram!
!
\n"
);
11
while
(1)
12
{
13
if(bcm2835_gpio_lev(KEY)==0)
14
15
printf("
KEYPRESS\n"
);
16
while(bcm2835_gpio_lev(KEY)==0)
17
bcm2835_delay(100);
18
}
19
20
21
bcm2835_close();
22
return
0;
23
}<
/stdio.h>
/bcm2835.h>
编译并执行,按下按键会看到窗口显示”KEYPRESS”,按Ctrl+C结束程序。
1
gcc–Wallkey.c–okey–lbcm2835
2
3
sudo./key
注:
(1)bcm2835_gpio_fsel(KEY,BCM2835_GPIO_FSEL_INPT);
设置管脚为输入模式
(2)bcm2835_gpio_set_pud(KEY,BCM2835_GPIO_PUD_UP);
设置为上拉模式
(3)
bcm2835_gpio_lev(KEY);
读取管脚状态
二、wiringPi
#include<
wiringpi.h>
charKEY=29;
intmain()
(wiringPiSetup()<
0)return
1;
pinMode(KEY,INPUT);
pullUpDnControl(KEY,PUD_UP);
while
(1)
(digitalRead(KEY)==0)
while(digitalRead(KEY)==0)
delay(100);
/wiringpi.h>
gcc–Wallkey.c–okey–wiringPi
(1)pinMode(KEY,INPUT);
(2)pullUpDnControl(KEY,PUD_UP);
digitalRead(KEY);
通过中断的方式编程
#definebutton29
charflag=0;
voidmyInterrupt()
flag++;
}
if(wiringPiSetup()<
if(wiringPiISR(button,INT_EDGE_FALLING,&
myInterrupt)<
0)
UnabletosetupISR\n"
Interrupttestprogram\n"
if(flag)
while(digitalRead(button)==0);
24
buttonpress\n"
25
flag=0;
26
27
28
29
编译并执行
gcc–WallInterrupt.c–oInterrupt-lwirngPi
sudo./Interrupt
(1)wiringPiISR(button,INT_EDGE_FALLING,&
myInterrupt);
设置中断下降沿触发,myInterrupt为中断处理函数。
三、python
#!
/usr/bin/python
#-*-coding:
utf-8-*-
importRPi.GPIO
as
GPIO
importtime
KEY=26
GPIO.setmode(GPIO.BCM)
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)
True:
time.sleep(0.05)
GPIO.input(KEY)==0:
print("
KEYPRESS"
)
time.sleep(0.01)
执行程序,按下按键会看到窗口显示”KEYPRESS”,按Ctrl+C结束程序。
sudopythonkey.py
(1)GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)
设置管脚为上拉输入模式
(2)GPIO.input(KEY)
读取管脚值
通过中断模式编程
defMyInterrupt(KEY):
spanstyle="
font-size:
9pt;
line-height:
25.2000007629395px;
"
>
<
/span>
GPIO.add_event_detect(KEY,GPIO.FALLING,MyInterrupt,200)
time.sleep
(1)
(1)defMyInterrupt(KEY):
定义中断处理函数
(2)GPIO.add_event_detect(KEY,GPIO.FALLING,MyInterrupt,200)
增加事件检测,下降沿触发,忽略由于开关抖动引起的小于200ms的边缘操作。
关于树莓派事件中断编程请参考:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扩展 资源 资料 派系 教程 按键