• 正文
    • 一、前言
    • 二、硬件連接
    • 三、編寫代碼并運行
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

樹莓派從零開始快速入門第7講——外部中斷

2024/07/07
1664
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

一、前言

前面兩節(jié)介紹了LED燈和按鍵輸入,那么這一講就基于按鍵學(xué)習(xí)一下外部中斷,目標(biāo)是通過按鍵控制LED開燈和關(guān)燈。

二、硬件連接

連接好按鍵和LED燈,不懂的同學(xué)可以先看下前兩節(jié)的內(nèi)容,硬件原理就不多做介紹了,樹莓派單片機有所區(qū)別,對于樹莓派編程來說,我們更多的是做上層的應(yīng)用,下層驅(qū)動的實現(xiàn)不會花太多的時間去研究。

三、編寫代碼并運行

示例代碼如下:

#!/usr/bin/python                             
#-*- coding:utf-8 -*-               
import RPi.GPIO as GPIO                #導(dǎo)入RPi.GPIO庫
import time                            #導(dǎo)入time庫   

LED = 26                               #LED引腳
KEY = 20                               #按鍵引腳號

GPIO.setwarnings(False)                #不加這句會有警告,因為該引腳已經(jīng)被設(shè)置成了非默認(rèn)值(也可以不加,不影響正常使用)
GPIO.setmode(GPIO.BCM)                 #使用BCM編碼的引腳號
GPIO.setup(LED,GPIO.OUT)               #配置LED引腳模式
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)    #設(shè)置KEY引腳模式

global led_status                      #記錄LED電平狀態(tài)(全局變量)
led_status = 0                         

def KEYInterrupt(KEY):                 #外部中斷服務(wù)函數(shù)
    global led_status
    if led_status :
        GPIO.output(LED,GPIO.LOW)      #關(guān)燈
        print("LED OFF")
        led_status = 0  
    else :
        GPIO.output(LED,GPIO.HIGH)     #開燈
        print("LED ON")
        led_status = 1 

GPIO.add_event_detect(KEY,GPIO.FALLING,KEYInterrupt,200) #KEY:按鍵引腳號,GPIO.FALLING:下降沿模式,KEYInterrupt:中斷服務(wù)函數(shù),200:消抖時間(ms)

while True:
    time.sleep(1)

運行結(jié)果:

按鍵按下,LED點亮,打印“LED ON”。再按一次,LED熄滅,打印“LED OFF”。

在這里插入圖片描述

四、結(jié)束語

這一講結(jié)合了LED和KEY介紹了樹莓派外部中斷的使用,功能比較簡單,但是很實用。好了,這一講的內(nèi)容就這么多了,想了解更多樹莓派的知識可以關(guān)注我,后續(xù)我會繼續(xù)更新更多的教程。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
590BB120M000DGR 1 Silicon Laboratories Inc Oscillator
$49.09 查看
AT17F16A-30CU 1 Atmel Corporation Configuration Memory, 16MX1, Serial, CMOS, 6 X 6 MM, 1.04 MM HEIGHT, 1.27 MM PITCH, GREEN, LAP-8
$29.47 查看
AB-557-03-HCHC-F-L-C-T 1 Abracon Corporation PLL Based Clock Driver, 557 Series, 2 True Output(s), 2 Inverted Output(s), QFN-14

ECAD模型

下載ECAD模型
$15.58 查看
樹莓派

樹莓派

Raspberry Pi Ltd致力于讓全世界的用戶和企業(yè)都能暢享計算的便利。Raspberry Pi產(chǎn)品成本低、品質(zhì)高、結(jié)構(gòu)緊湊、效率高,可用于很多地方:從家用計算到工廠控制、從復(fù)古游戲到嵌入式應(yīng)用,從教育到企業(yè)。自2012年出售第一款產(chǎn)品以來,Raspberry Pi已成為英國備受歡迎的計算機公司。

Raspberry Pi Ltd致力于讓全世界的用戶和企業(yè)都能暢享計算的便利。Raspberry Pi產(chǎn)品成本低、品質(zhì)高、結(jié)構(gòu)緊湊、效率高,可用于很多地方:從家用計算到工廠控制、從復(fù)古游戲到嵌入式應(yīng)用,從教育到企業(yè)。自2012年出售第一款產(chǎn)品以來,Raspberry Pi已成為英國備受歡迎的計算機公司。收起

查看更多

相關(guān)推薦