


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上两章我们讲解了在树莓派上如何点亮一个LED灯,这一章我们讲解一下按键以及事件中断。一、bcm283501 #in elude <bcm2835.h>02 #i nclude <stdio.h>0304 #defi ne KEY 2005 int main (i nt argc, char *argv)06 07if (!bcm2835_i nit()return 1;08 bcm2835_gpio_fsel(KEY, BCM2835_GPIO_FSEL_INPT);09 bcm2835_gpio_set_pud(KEY, BCM2835_GPIO_PUD_UP);10
2、 prin tf("Key Test Program!n");11 while (1)12 13 if(bcm2835_gpio_lev(KEY) = 0)14 15 printf ("KEY PRESS'n");16 while(bcm2835_gpio_lev(KEY) = 0)17 bcm2835_delay(100);18 19 bcm2835_delay(100);20 21 bcm2835_close();22 return 0;23 </stdio.h>v/bcm2835.h>编译并执行,按下按键会看到窗口显示”K
3、EY PRSStS+C,结陳程序。1 gcc -Wall key.c key Tbcm28353 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);读取管脚状态二、wiringPi01 #in clude <stdio.h>02 #in clude<wiri ngpi.h>0304 char KEY = 29;
4、0506 int mai n()if (wiri ngPiSetup() < O)return 1 ; pinM ode (KEY,INPUT); pullUpD nCon trol(KEY, PUD_UP); prin tf("Key Test Program!n"); while(1)08091011121314151617181920if (digitalRead(KEY) = 0)printf ("KEY PRESS'n");while(digitalRead(KEY) = 0) delay(100); delay(100);21
5、22 </wiri ngpi.h></stdio.h>编译并执行,按下按键会看到窗口显示”KEY PRESS+C,纟按束程序。1 gcc -Wall key.c key -viringPi3 sudo ./key注:(1)pinMode (KEY,INPUT); 设置管脚为输入模式(2) pullUpDnControl(KEY, PUD_UP);设置为上拉模式(3) digitalRead(KEY);读取管脚状态通过中断的方式编程01 #i nclude <stdio.h>02 #in elude <wiri ngpi.h>0304 #defi
6、ne button 2905 char flag = 0;06 void myl nterrupt()07 08 flag +;09 1011 int mai n()12 13 if(wiri ngPiSetup() < 0)return 1;14 if(wiri ngPilSR(butt on ,INT_EDGE_FALLING,&myln terrupt) < 0)15 16 prin tf("U nable to setup ISR n");17 18 prin tf(" In terrupt test program' n&qu
7、ot;);19 while20 21 if(flag)22 0);23 while(digitalRead(butto n)=24 prin tf("button pressn");25 flag = 0;26 27 28 29 </wiri ngpi.h></stdio.h>编译并执行1 gcc -Wall Interrupt.c Interrupt -IwirngPi3 sudo ./In terrupt;设置中断下降沿触发,myInterrupt注: ( 1 ) wiringPilSR(button,INT_EDGE_FALLING,&
8、mylnterrupt)为中断处理函数。三、python01 #!/usr/bi n/pyth on02 # -*- codi ng:utf-8 -*-03 import RPi.GPIO as GPIO04 import time0506 KEY = 260708 GPIO.setmode(GPIO.BCM)09 GPIO.setup(KEY,GPION,GPIO.PUD_UP)10 while True:11 time.sleep(0.05)12 if GPIO.i nput(KEY) = 0:13 prin t("KEY PRESS")14 while GPIO.i
9、nput(KEY) = 0:15 time.sleep(0.01)执行程序,按下按键会看到窗口显示”KEY PRECSI+” ,按束程序。1 sudo pytho n key.py注:(1 ) GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)设置管脚为上拉输入模式(2)GPIO.input(KEY )读取管脚值通过中断模式编程01 #!/usr/bi n/pyth on02 # -*- codi ng:utf-8 -*-03 import RPi.GPIO as GPIO04 import time0506 KEY = 260708 def MyI nterrupt(KE
10、Y):<spa n style="fo nt-size: 9pt; li ne-height:0925.2000007629395px;"></spa n>pri nt("KEY PRESS")1011 GPIO.setmode(GPIO.BCM)12 GPIO.setup(KEY,GPION,GPIO.PUD_UP)13 GPIO.add_eve nt_detect(KEY,GPIO.FALLING,Myl nterrupt,200)15 while True:<spa n style="fo nt-size: 9pt; li ne-height:1625.2000007629395px;"> </spa n>t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我的妈妈课件分享
- 2025辽阳职业技术学院辅导员考试试题及答案
- 2025苏州幼儿师范高等专科学校辅导员考试试题及答案
- 2025甘肃交通职业技术学院辅导员考试试题及答案
- 妈妈生日庆祝活动策划方案
- 网络工程毕业设计
- 创意写作考试试卷及答案2025年
- 基础医学与健康知识2025年考试试卷及答案
- T/XZY 017-2019金融理财师岗位能力测评与考核要求
- 2025年外语翻译专业技能测试考试试卷及答案
- 2025年共青团入团考试题库及答案
- 《守护健康课件:拒绝烟草》
- 债务风险管理指南
- 利润分配方案范文公司利润分配方案
- 虚拟现实与非遗传承
- 第二单元生物和栖息地(复习课件)-六年级科学下册期中复习
- 中国资源循环集团有限公司招聘笔试真题2024
- 儿科门诊工作制度
- 比亚迪入职考试题及答案
- 第三单元7.美丽乡村 课件 -2024-2025学年浙人美版(2024)初中美术七年级下册
- 中国诗词测试题及答案
评论
0/150
提交评论