欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

不同GPIO類庫的區(qū)別

CHANBAEK ? 來源:和娃一起玩樹莓派 ? 作者:老孟K ? 2023-07-02 15:03 ? 次閱讀

重點來講解一下什么是類庫,如何使用,以及不同的GPIO類庫的區(qū)別。

什么是類庫

類庫是別人寫好的解決某類或某個問題的可以重復(fù)使用的代碼集合。在面向?qū)ο?a href="http://www.delux-kingway.cn/v/tag/1315/" target="_blank">編程(我們今后會講到,可以簡單理解為把程序設(shè)計為類似現(xiàn)實世界中各種對象的方式來解決問題)的編程語言里,類庫里面包括了很多別人設(shè)計好的類對象,可以直接拿來使用,比如我們代碼里面的sleep方法就來自于time庫,可以讓程序暫停(睡覺)指定的時間。有了類庫,我們就不需要所有的事情都自己解決,對于別人已經(jīng)解決的問題,可以直接使用他寫好的類庫,就像我們做機器人,輪子可以用現(xiàn)成的,不需要我們從原料開始做,選擇合適尺寸,材料的輪子就行了,所以編程時要善于利用類庫,不要做“重復(fù)發(fā)明輪子”的事情。類庫也像我們搭積木是使用的不同形狀和大小的積木塊,拿來用就可以做出自己需要的東西。

類庫可以分為兩大類:

  • 編程語言自帶的類庫,比如Python編程語言自帶的OS,sys,logging庫,RPi.GPIO和time也是自帶類庫。
  • 第三方類庫:除上面自帶類庫外的其他非官方類庫都是。比如現(xiàn)在機器學習,數(shù)據(jù)分析常見的numpy,matplotlib 等。

from與import

Python有2種方式來使用類庫,分別是import 和from。我們先看看import:

import 類庫名1 [as 別名1], 類庫名2 [as 別名2],...

使用這種語法格式的 import 語句,會導(dǎo)入指定類庫中的所有成員(包括變量、函數(shù)、類等)。當需要使用類庫中的成員時,需用該類庫名(或別名)作為前綴,否則 Python 解釋器會報錯。

from的語法如下:

from 類庫名 import 成員名1 [as 別名1],成員名2 [as 別名2],...

from只會導(dǎo)入模塊中指定的成員,而不是全部成員。當程序中使用該成員時,無需附加任何前綴,直接使用成員名(或別名)就可以了。

我們的控制發(fā)光二極管的程序中,可以看到這2種使用類庫的方式:

import RPi.GPIO as GPIO    #需要使用別人寫好的類庫
from time import sleep     #需要使用別人寫好的類庫
GPIO.setmode(GPIO.BCM)
GPIO.setup(27,GPIO.OUT)  #這2句把GPIO27設(shè)置為輸出模式
while True:
    GPIO.output(27,True)   #在GPIO輸出高電位1,此時LED
    sleep(1)             #等1秒
    GPIO.output(27,False)  #在GPIO輸出低電位0,此時LED滅
    sleep(1)            #等待1秒

import引入了RPi.GPIO類庫,并命名為別名GPIO,在程序中使用時,都需要加上GPIO這個別名,如GPIO.setmode(GPIO.BCM).

用from time import sleep引入了sleep,在代碼中使用時,就不需要加上time這里類庫名,而是直接使用sleep了。

GPIO的類庫比較

上面講了怎么把類庫引入程序中,要想用好類庫,還需要學習類庫中各種類,函數(shù)等如何使用,此時就需要看類庫對應(yīng)的官方文檔或者參考相關(guān)的文檔了。

比如RPi.GPIO類庫的官方文檔網(wǎng)站是:

https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

一般這種網(wǎng)站都是英文的,比較考驗大家英文水平,此時可以搜索國內(nèi)的相應(yīng)中文文檔。

RPi.GPIO庫

RPi.GPIO是比較老的GPIO庫,使用時需要注意它有2種GPIO的引腳規(guī)則,分別為BOARD和BCM,使用時需要先指定用哪種規(guī)則,對應(yīng)的代碼為:

GPIO.setmode(GPIO.BOARD) #設(shè)置為BOARD模式
  # or
GPIO.setmode(GPIO.BCM)   #設(shè)置為BCM模式

我們先看看下面的圖片以便理解接下來的討論。

圖片

BOARD模式是在程序中使用的是引腳的物理數(shù)字,也就是第幾個引腳。BCM模式使用的是引腳的功能定義,比如GPIO27它的物理引腳數(shù)字是13,那么設(shè)置為BOARD模式時,我們在程序中輸入的引腳數(shù)字應(yīng)該是13

GPIO.setmode(GPIO.BOARD)
GPIO.setup(13,GPIO.OUT)  #把第13引腳(GPIO27)設(shè)置為輸出模式

設(shè)置為BCM模式時,同樣的引腳設(shè)置為輸出模式代碼為:

GPIO.setmode(GPIO.BCM)  
GPIO.setup(27,GPIO.OUT) #把GPIO27(第13引腳)設(shè)置為輸出模式

大家使用時一定要注意區(qū)別。

使用RPi.GPIO庫時,基本的使用方法是:

  1. 先設(shè)置引腳模式為BOARD還是BCM
  2. 設(shè)置引腳為OUTPUT(輸出)還是INPUT(輸入)
  3. 控制或讀取引腳的數(shù)據(jù)。

想一想:如果電路連接不變,改用BOARD模式,我們的控制二極管程序應(yīng)該如何修改呢?)

gpiozero庫

大家可以看到使用RPi.GPIO庫還是有點麻煩,于是有人在它的基礎(chǔ)上開發(fā)了一個新的類庫,讓大家更方面的來控制GPIO,這個類庫的名字叫做gpiozero,它的使用文檔在這里:

https://gpiozero.readthedocs.io/en/stable/index.html

gpiozero是樹莓派官方推薦的學習GPIO編程的類庫,它創(chuàng)建了LED類用來控制發(fā)光二極管,Button類用來讀取按鈕狀態(tài),MotionSensor用于動作傳感器等非常多的對象,我們可以直接使用。

使用它控制發(fā)光二極管的代碼特別簡單,還是以控制連接到GPIO27引腳的LED為例,代碼如下:

from gpiozero import LED
from time import sleep


red = LED(27)     #創(chuàng)建一個led對象,命名為red,你可以可以用其他名字


while True:
    red.on()
    sleep(1)
    red.off()
    sleep(1)

可以看到gpiozero其實默認使用了BCM模式,只是我們不需要寫在代碼里了。

用gpiozero庫,我們只需要定義一個led對象,然后調(diào)用對象的on, off方法就可以控制發(fā)光二級管了,對比RPi.GPIO,簡單多了。

除了剛才介紹的這2個類庫,還有其他的GPIO類庫,比如pigpio,這里就不介紹了。

下一講我們來聊聊如何通過這2個類庫讀取按鈕的狀態(tài)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1951

    瀏覽量

    35018
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1217

    瀏覽量

    52434
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8445

    瀏覽量

    133118
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4809

    瀏覽量

    85074
收藏 人收藏

    評論

    相關(guān)推薦

    使用STM32 HAL進行GPIO控制的實例

    在基于STM32微控制器的嵌入式系統(tǒng)開發(fā)中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見的操作之一。通過使用STM32的HAL,可以輕松地對GPIO進行配置和控制。本文將演示如何使用
    的頭像 發(fā)表于 12-21 15:22 ?3720次閱讀

    不可錯過的三GPIO硬件設(shè)計指南!

    今天我們學習三GPIO硬件設(shè)計,這三絕對是不可錯過的,本文將把三設(shè)計的重要性展示出來:
    的頭像 發(fā)表于 11-04 09:45 ?1085次閱讀
    不可錯過的三<b class='flag-5'>類</b><b class='flag-5'>GPIO</b>硬件設(shè)計指南!

    請問GPIO_MODE中的GPIO_MODE_IT_RISING和GPIO_MODE_EVT_RISING的區(qū)別是什么

    在學習CubeMX軟件配置GPIO中斷時,看到如圖所示的選項:立刻就比較困惑,查了HAL后,看到GPIO_MODE的確有這樣的定義如圖:自己還在學習中,看了HAL的幫助文檔,但不知道GPIO
    發(fā)表于 01-22 05:28

    請問這兩訪問有什么區(qū)別?

    關(guān)于cpu訪問GPIO、UART、I2C等接口,與cpu訪問FLASH、ROM、SDRAM的區(qū)別?cpu訪問GPIO、UART等外設(shè),是通過特殊功能的寄存器,不也是在訪問內(nèi)存上的某一地址嗎?而cpu訪問FLASH、ROM也是訪問
    發(fā)表于 09-10 05:45

    標準和HAL有啥區(qū)別

    ,程序癱瘓了,所以今天咱們來看看標準和HAL有啥區(qū)別,各個他的優(yōu)點在哪里。標準串口通信GPIO
    發(fā)表于 08-04 08:22

    GPIO輸出--蜂鳴器

    蜂鳴器)。 學習目的:了解如何使用開發(fā)以及為與寄存器操作的區(qū)別,學會如何控制GPIO輸出。 【*】實驗操作: 下載本程序到開發(fā)板,復(fù)位板子即可,蜂鳴器會響。 【*】注意事項: 無
    發(fā)表于 12-12 19:02 ?4次下載

    STM32F407標準學習筆記-GPIO

    STM32F407標準學習筆記-GPIO頭文件 gpio.h枚舉-列舉同一寄存器的不同選項typedef enum{ GPIO_Low_Speed = 0x00, /*!
    發(fā)表于 11-29 15:51 ?46次下載
    STM32F407標準<b class='flag-5'>庫</b>學習筆記-<b class='flag-5'>GPIO</b>

    STM32G031K LL使用 - GPIO

    最近使用STm32G031K6做一款I(lǐng)OT產(chǎn)品,選擇了用最新LL進行開發(fā),因為知其那對LL了解很少,所以開始的時候踩了很多坑,為防以后繼續(xù)踩坑,現(xiàn)在做一個記錄。GPIO初始化:void
    發(fā)表于 12-02 17:06 ?18次下載
    STM32G031K LL<b class='flag-5'>庫</b>使用 - <b class='flag-5'>GPIO</b>

    HALGPIO八種工作模式

    眾所周知,STM32的GPIO的工作模式有八種,但是打開HAL發(fā)現(xiàn),有12中可以供自己設(shè)置。先不要懵,下面解釋一下這12種工作模式的區(qū)別。實際上這12種是包含在通用的8種工作模式之中的,只是細分
    發(fā)表于 12-05 13:06 ?8次下載
    HAL<b class='flag-5'>庫</b>的<b class='flag-5'>GPIO</b>八種工作模式

    【STM32】標準與HAL對照學習教程三--使用庫函數(shù)配置GPIO點亮LED燈

    【STM32】標準與HAL對照學習教程三--使用庫函數(shù)配置GPIO點亮LED燈一、前言二、準備工作三、LED硬件電路四、使用標準工程點亮LED燈1、
    發(fā)表于 12-05 14:06 ?15次下載
    【STM32】標準<b class='flag-5'>庫</b>與HAL<b class='flag-5'>庫</b>對照學習教程三--使用庫函數(shù)配置<b class='flag-5'>GPIO</b>點亮LED燈

    00_STM32F4學習_HAL_GPIO函數(shù)

    00_STM32F4學習_HAL_GPIO函數(shù)最近重學STM32,打算從HAL+STM32CubeMX方式進行學習,將學習中用過及查閱整理的知識在此整理,如有錯誤望指正。1、初始化void
    發(fā)表于 12-05 14:21 ?12次下載
    00_STM32F4學習_HAL<b class='flag-5'>庫</b>_<b class='flag-5'>GPIO</b>函數(shù)

    HAL-GPIO介紹

    一.GPIO 使用1.輸入輸出模式(8種)GPIO_Mode_AIN #模擬輸入GPIO_Mode_IN_FLOATING #浮空輸入GPIO
    發(fā)表于 12-28 19:32 ?2次下載
    HAL<b class='flag-5'>庫</b>-<b class='flag-5'>GPIO</b>介紹

    【STM32】標準與HAL對照學習教程特別篇--GPIO詳講

    【STM32】SMT32標準與HAL對照學習教程特別篇--GPIO詳講一、前言二、GPIO簡介1、定義2、分類3、復(fù)用三、GPIO工作模
    發(fā)表于 01-13 16:12 ?12次下載
    【STM32】標準<b class='flag-5'>庫</b>與HAL<b class='flag-5'>庫</b>對照學習教程特別篇--<b class='flag-5'>GPIO</b>詳講

    單片機GPIO配置不同輸出速度有何區(qū)別

    不管標準外設(shè),還是STM32CubeMX配置GPIO輸出引腳,都會有速度GPIO_InitStruct.Speed這個選項。
    發(fā)表于 02-08 15:24 ?3次下載
    單片機<b class='flag-5'>GPIO</b>配置不同輸出速度有何<b class='flag-5'>區(qū)別</b>?

    硬件設(shè)計技巧:三GPIO接口的實用指南

    今天教大家一些關(guān)于硬件設(shè)計的的技巧,只要掌握好三GPIO,輕松玩好硬件設(shè)計。
    的頭像 發(fā)表于 11-05 12:22 ?416次閱讀
    硬件設(shè)計技巧:三<b class='flag-5'>類</b><b class='flag-5'>GPIO</b>接口的實用指南