一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

怎樣用Raspberry Pi 3使LED閃爍

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-05 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:設(shè)置/填充文件

好吧。..第一步是獲取硬件。您可以單獨(dú)購(gòu)買零件,也可以使用工具包附帶足夠的零件。 LINK

此工具包隨附了設(shè)置raspberry pi 3以及更多內(nèi)容所需的一切!該套件中唯一沒有包括的是一張額外的迷你SD卡。等待!暫時(shí)不要再購(gòu)買。如果您不打算使用卡上預(yù)裝的linux安裝程序,則只需復(fù)制隨附的mini sd卡的內(nèi)容以備后用,然后重新格式化該卡即可(稍后再介紹)。重要提示:請(qǐng)確保將文件保存在隨附的卡上,以備日后使用!

接下來是時(shí)候安裝軟件了。本教程將不包括有關(guān)如何安裝軟件的詳細(xì)說明。在線上有許多資源和教程,它們是如何安裝這些軟件的:

WINDOWS用戶:

下載并安裝gcc。

接下來,下載并安裝GNU ARM嵌入式工具鏈。

LINUX/MAC

Linux發(fā)行版預(yù)裝了gcc

下載并安裝GNU ARM嵌入式工具鏈。

好的,如果一切順利,那么您應(yīng)該可以打開終端機(jī)(linux/mac)或cmd行(windows),然后嘗試輸入

arm-none -eabi-gcc

輸出應(yīng)類似于第一張圖片。這只是為了驗(yàn)證它是否已正確安裝。

現(xiàn)在,前提條件已不復(fù)存在,現(xiàn)在該開始學(xué)習(xí)有趣的東西了。

步驟2:電路

電路時(shí)間!電路很簡(jiǎn)單。我們將在pi上連接一個(gè)led到GPIO 21(引腳40)(見圖2和3)。電阻也串聯(lián)連接,以防止損壞LED。電阻將連接到面包板上的負(fù)極,負(fù)極將連接到pi上的GND(引腳39)。連接LED時(shí),請(qǐng)確保將短端連接到負(fù)極??吹阶詈笠粡垐D片

步驟3:BOOTABLE Mini SD

有三個(gè)步驟可讓您的pi 3識(shí)別空白的迷你SD卡。我們需要找到并復(fù)制bootcode.bin,start.elf和fixup.dat。如果您購(gòu)買了canakit或?yàn)閘inux發(fā)行的pi 3制作了可啟動(dòng)的sd卡,則可以在隨附的mini sd卡上獲得這些文件。無論哪種方式,這些文件都是必需的,以允許pi將sd卡識(shí)別為可引導(dǎo)設(shè)備。接下來,將mini sd格式化為fat32(大多數(shù)mini sd卡都格式化為fat32。我從sandisk使用了便宜的mini sd卡),將bootcode.bin,start.elf,fixup.dat移到sd卡上。完成了!好了一次,按照?qǐng)D片的順序,步驟是:

找到bootcode.bin,start.elf,fixup.dat。

確保您的SD卡格式化為fat32。

將bootcode.bin,start.elf和fixup.dat移至格式化的sd卡上。

這是我如何解決這個(gè)問題,請(qǐng)鏈接。

第4步:檢查Mini SD

好的,我們有一個(gè)可引導(dǎo)的迷你SD卡,希望您此時(shí)有一個(gè)pi 3。因此,現(xiàn)在我們應(yīng)該對(duì)其進(jìn)行測(cè)試,以確保pi 3能夠識(shí)別出迷你sd卡是可啟動(dòng)的。

在pi上,靠近迷你USB端口的地方有兩個(gè)小led。一個(gè)是紅色的。這是電源指示燈。當(dāng)pi接通電源時(shí),該指示燈應(yīng)亮起。因此,如果您現(xiàn)在沒有任何迷你sd卡插入pi,它就會(huì)亮起紅色。好的,現(xiàn)在拔下pi的插頭,然后插入上一步中創(chuàng)建的可啟動(dòng)迷你sd卡,然后將pi插入。您是否看到另一盞燈?在紅色旁邊,應(yīng)該有一個(gè)綠色指示燈,指示它正在讀取SD卡。該指示燈稱為ACT指示燈。插入可行的sd卡時(shí),它會(huì)亮起。訪問迷你SD卡時(shí),它將閃爍。

好吧,因此,在插入可引導(dǎo)的迷你sd卡并將pi插入后,應(yīng)該發(fā)生了兩件事:

紅色指示燈應(yīng)亮起,指示受電

綠色指示燈應(yīng)亮起,表明它已插入迷你SD卡中。

如果出現(xiàn)問題,請(qǐng)嘗試重復(fù)上述步驟或單擊下面的鏈接以獲取更多信息。

鏈接是一個(gè)很好的參考。

步驟5:CODE1

該項(xiàng)目是用ARM匯編語言編寫的。本教程假定您對(duì)ARM匯編有基本的了解,但是您應(yīng)該了解以下幾點(diǎn):

.equ:為符號(hào)分配一個(gè)值,即abc .equ 5 abc現(xiàn)在代表五

ldr:從內(nèi)存中加載

str:寫入內(nèi)存

cmp:通過執(zhí)行減法比較兩個(gè)值。設(shè)置標(biāo)志。

b:分支到標(biāo)簽

添加:執(zhí)行算術(shù)

如果您對(duì)Arm組裝沒有任何經(jīng)驗(yàn),請(qǐng)觀看此文章視頻。它將使您對(duì)Arm匯編語言有很好的了解。

好吧,現(xiàn)在我們有一個(gè)連接到樹莓派3的電路,并且有一個(gè)pi可以識(shí)別的sd卡,所以我們的下一個(gè)任務(wù)是弄清楚如何通過加載樹莓派來與電路交互帶有可執(zhí)行程序的pi。通常,我們需要做的是告訴pi從GPIO 21(連接到紅線的引腳)輸出電壓。然后,我們需要一種方法來切換led使其閃爍。為此,我們需要更多信息。到目前為止,我們還不知道如何告訴GPIO 21輸出,這就是為什么我們必須閱讀數(shù)據(jù)手冊(cè)的原因。大多數(shù)微控制器都有數(shù)據(jù)表,這些數(shù)據(jù)表準(zhǔn)確指定了所有工作方式。不幸的是,pi 3沒有官方文檔!但是,有一個(gè)非正式的數(shù)據(jù)表。這是指向它的兩個(gè)鏈接:

https://github.com/raspberrypi/documentation/files 。..

https://web.stanford.edu/class/cs140e/docs/BCM2837 。..

在這一點(diǎn)上,您應(yīng)該花幾分鐘的時(shí)間才能進(jìn)入下一步瀏覽數(shù)據(jù)表,看看您能找到什么信息。

步驟6:CODE2:Turn_Led_ON

raspberry pi 3 53寄存器用于控制輸出/輸入引腳(外圍設(shè)備)。引腳分組在一起,每組分配給一個(gè)寄存器。對(duì)于GPIO,我們需要能夠訪問SELECT寄存器,SET寄存器和CLEAR寄存器。要訪問這些寄存器,我們需要這些寄存器的物理地址。在閱讀數(shù)據(jù)手冊(cè)時(shí),您只需要記下地址的偏移量(低字節(jié))并將其添加到基址即可。您必須執(zhí)行此操作,因?yàn)閿?shù)據(jù)表列出了Linux虛擬地址,這些地址基本上是操作系統(tǒng)分配的值。我們沒有使用操作系統(tǒng),因此我們需要使用物理地址直接訪問這些寄存器。為此,您需要以下信息:

外圍設(shè)備的基地址:0x3f200000。 pdf(第6頁)表示基本地址為0x3f000000,但是該地址不起作用。使用0x3f200000

FSEL2(SELECT)的偏移量而不是寄存器的完整地址。 pdf在0x7E20008處列出了FSEL2,但該地址是linux虛擬地址。偏移量將相同,因此我們要注意。 0x08

GPSET0(SET)的偏移量: 0x1c

O GPCLR0(CLEAR)的偏移量:0x28

因此,您可能會(huì)注意到數(shù)據(jù)表中列出了4個(gè)SELECT寄存器,2個(gè)SET寄存器和2個(gè)CLEAR寄存器,那么為什么選擇我所做的那些呢?這是因?yàn)槲覀円褂肎PIO 21,而FSEL2控制GPIO 20-29,SET0和CLR0控制GPIO 0-31。 FSEL寄存器為每個(gè)GPIO引腳分配了三個(gè)位。由于我們使用的是FSEL2,這意味著位0-2控制GPIO 20,位3-5控制GPIO 21,依此類推。 Set和CLR寄存器為每個(gè)引腳分配一個(gè)位。例如,SET0和CLR0中的位0控制GPIO1。要控制GPIO 21,您需要在SET0和CLR0中設(shè)置位21。

好的,所以我們已經(jīng)討論了如何訪問這些寄存器,但是該怎么做呢?

FSEL2寄存器將用于將GPIO 21設(shè)置為輸出。要設(shè)置引腳輸出,您需要將三個(gè)位的lo順序位設(shè)置為1。因此,如果位3-5控制GPIO 21,則意味著我們需要將第一個(gè)位(位3)設(shè)置為1。這將告訴pi我們想要使用GPIO 21作為輸出。因此,如果要查看GPIO 21的3位,將其設(shè)置為b001后,它們應(yīng)該看起來像這樣。

GPSET0告訴pi開啟引腳(輸出電壓)。為此,我們只需切換與所需GPIO引腳對(duì)應(yīng)的位即可。在我們的情況下,位21。

GPCLR0告訴pi關(guān)閉該引腳(無電壓)。要關(guān)閉該引腳,請(qǐng)將此位設(shè)置為相應(yīng)的GPIO引腳。在我們的示例中,第21位

在出現(xiàn)閃爍的led之前,首先讓我們編寫一個(gè)簡(jiǎn)單的程序,該程序只需打開led。

首先,我們需要在源代碼的頂部添加兩個(gè)指令。

.section .init告訴pi將代碼放置在哪里

.global _start

接下來,我們需要布置將要使用的所有地址。使用.equ為值分配可讀符號(hào)。

.equ GPFSEL2,0x08

.equ GPSET0,0x1c

.equ GPCLR0,0x28

.equ BASE,0x3f200000

現(xiàn)在,我們將創(chuàng)建掩碼以設(shè)置需要設(shè)置的位。

.equ SET_BIT3,0x08這將設(shè)置第三個(gè)位0000_1000

.equ SET_BIT21,0x200000

然后我們需要添加_start標(biāo)簽

_start:

將基地址加載到寄存器

ldr r0,= BASE

現(xiàn)在我們需要設(shè)置GPFSEL2的bit3

ldr r1,SET_BIT3

str r1,[r0,#GPFSEL2]該指令表示將位0x08寫回GPFSEL2

最后,我們需要通過將GPSET0寄存器中的位21置1來設(shè)置GPIO 21

ldr r1,= SET_BIT21

str r1,[r0,#GPSET0]

最終產(chǎn)品應(yīng)類似于所示的代碼。

下一步是編譯代碼并創(chuàng)建一個(gè).img pi可以運(yùn)行的文件。

下載附件makefile,kernel.ld,以及是否需要turn_led_on.s源代碼。

將所有文件放在同一文件夾中。

如果使用自己的源代碼,請(qǐng)編輯makefile并將代碼= turn_led_on.s替換為code = .s

保存makefile。

使用終端(linux)或cmd窗口(windows)導(dǎo)航至包含以下內(nèi)容的文件夾文件,然后鍵入make并按Enter鍵。

make文件應(yīng)生成一個(gè)名為kernel.img的文件。

將kernel.img復(fù)制到您的迷你SD卡中??ǖ膬?nèi)容應(yīng)如圖所示(圖3):bootcode.bin,start.elf,fixup.dat和kernel.img。

彈出迷你sd卡并將其插入pi

將pi插入電源中

LED應(yīng)該亮起?。?/p>

重要提示:顯然可指導(dǎo)人員遇到了問題makefile沒有擴(kuò)展名,因此我將其擴(kuò)展名為.txt。

第7步:CODE3:BLINKY_LED

最后,是時(shí)候讓LED閃爍了!

與之前的步驟相比,這相對(duì)簡(jiǎn)單。我們需要做的就是編寫一個(gè)無限循環(huán),在該循環(huán)內(nèi)打開LED,然后打開DELAY,然后關(guān)閉LED延遲并循環(huán)。

打開turn_led_on.s,然后將其另存為blinky_led .s

在.equ部分中添加.equ COUNTER,0xf0000。

在循環(huán)之前的下一個(gè)地方添加ldr r2,= COUNTER

在文件末尾添加新標(biāo)簽Inifinite_loop:

在下一行添加b Inifinite_loop。這意味著代碼將無限期地跳轉(zhuǎn)回Inifinite_loop標(biāo)簽。

在循環(huán)中打開led:str r1,[r0,#GPSET0],然后將0放入r10:mov r10,#0

添加標(biāo)簽延遲:

在下一行上添加:添加r10,r10,#1,這將使r10在下一行上增加1

在下一行上添加:cmp r10 ,r2這會(huì)將r10與COUNTER的值進(jìn)行比較

延遲,這意味著程序?qū)⑾萑胙h(huán),直到r10遞增到COUNTER為止,這將延遲程序。

現(xiàn)在我們需要關(guān)閉LED:str r1,[r0,#GPCLR0]這會(huì)將CLEAR寄存器中的位21置1。關(guān)閉LED。

接下來從上方復(fù)制延遲循環(huán),并將delay更改為delay2

打開makefile并將第4行的turn_on_led.s更改為blinky_led.s或您的文件名選擇。

執(zhí)行與上一步相同的操作。

用新的kernel.img

將SD卡插入pi并替換新卡上的kernel.img。通電!

LED應(yīng)該以大約每秒閃爍1次的速度閃爍!

略有重要的注意事項(xiàng):顯然,指示人員有問題makefile沒有擴(kuò)展名,因此我將其擴(kuò)展名為.txt。下載擴(kuò)展程序后,請(qǐng)刪除該擴(kuò)展程序,以使其正常運(yùn)行。

步驟8:完成

就是這樣。希望您現(xiàn)在指示燈閃爍!

責(zé)任編輯:wv

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

    關(guān)注

    242

    文章

    23845

    瀏覽量

    674081
  • 樹莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2007

    瀏覽量

    107467
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在Raspberry Pi OS上安裝SDK?

    Raspberry Pi OS 上安裝 SDK
    發(fā)表于 04-30 06:45

    OpenVINO?是否與TensorFlow集成支持Raspberry Pi

    無法確定OpenVINO?是否與 TensorFlow* 集成支持 Raspberry Pi。
    發(fā)表于 03-05 08:26

    無法在Raspberry Pi 4中通過PyPI OpenVINO?安裝2022年運(yùn)行時(shí)軟件包,為什么?

    無法在 Raspberry* Pi 4 中通過 PyPI* 安裝OpenVINO? 2022 運(yùn)行時(shí)軟件包。
    發(fā)表于 03-05 07:31

    基于Raspberry Pi 5的情感機(jī)器人設(shè)計(jì)

    Raspberry Pi 5相較于上一代搭載了更強(qiáng)的處理器和硬件性能,為情感機(jī)器人的開發(fā)提供了前所未有的可能性。其支持多任務(wù)處理和實(shí)時(shí)計(jì)算,為語音交互和情感判斷提供了堅(jiān)實(shí)的基礎(chǔ)。此外配合高性能的攝像頭模塊和傳感器,機(jī)器人能夠捕捉環(huán)境信息,真正做到 “知人知面” 。
    的頭像 發(fā)表于 02-26 14:28 ?1107次閱讀
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5的情感機(jī)器人設(shè)計(jì)

    貿(mào)澤電子開售Raspberry Pi Hailo 8L AI套件

    近日,全球電子元器件和工業(yè)自動(dòng)化產(chǎn)品的領(lǐng)先授權(quán)代理商貿(mào)澤電子(Mouser Electronics)正式宣布開售Raspberry Pi的Hailo 8L AI套件。這一創(chuàng)新產(chǎn)品的推出,標(biāo)志著貿(mào)澤
    的頭像 發(fā)表于 01-15 14:25 ?517次閱讀

    Raspberry Pi樹莓派新手指南

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi樹莓派新手指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-23 17:05 ?2次下載

    新品來襲!Raspberry Pi Compute Module 5

    今天,我們很高興地宣布推出備受期待的Raspberry Pi計(jì)算模塊5,這是我們旗艦Raspberry Pi 5單板計(jì)算機(jī)的模塊化版本,售價(jià)僅為45美元。 意外之旅 我們?cè)?008年成
    的頭像 發(fā)表于 11-27 18:21 ?1262次閱讀
    新品來襲!<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Compute Module 5

    Raspberry Pi Pico 2 W 發(fā)布

    樹莓派官方今日宣布推出支持無線連接的新款 MCU(微控制器)主板 Raspberry Pi Pico 2 W,售價(jià) 7 美元, 較此前的有線版本高出 2 美元 。 ? ? Raspberry
    的頭像 發(fā)表于 11-25 18:25 ?1108次閱讀
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2 W 發(fā)布

    Raspberry Pi Pico 2

    Raspberry Pi Pico 2顯著提升了性能,同時(shí)保持了與之前的Raspberry Pi Pico系列器件的兼容性。 Pico 2具有更高的內(nèi)核時(shí)鐘速度、雙倍內(nèi)存、更強(qiáng)大的Ar
    的頭像 發(fā)表于 11-25 15:10 ?1306次閱讀
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2

    Banana Pi M5 與 Raspberry Pi 4 – 基準(zhǔn)測(cè)試

    Banana Pi M5 基準(zhǔn)測(cè)試已成為我的網(wǎng)站上最受歡迎的作品之一,而且似乎人們真正想看到的是它與其 Raspberry 口味的表親之間的直接比較,所以這里就是 Banana Pi M5 與
    的頭像 發(fā)表于 10-28 10:28 ?1289次閱讀
    Banana <b class='flag-5'>Pi</b> M5 與 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4 – 基準(zhǔn)測(cè)試

    Raspberry Pi CM5 還要幾周才能上市嗎?

    如果您經(jīng)常逛電子產(chǎn)品商店/網(wǎng)站,您可能會(huì)偶然發(fā)現(xiàn)一些您沒想到的產(chǎn)品。今天在 Mouser 上,我們似乎有一堆 Raspberry Pi CM5 配件。很快 TM 就會(huì)有?
    的頭像 發(fā)表于 10-28 10:26 ?1170次閱讀
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> CM5 還要幾周才能上市嗎?

    e絡(luò)盟開售Raspberry Pi新款產(chǎn)品

    安富利旗下全球電子與工業(yè)系統(tǒng)設(shè)計(jì)、維護(hù)和維修產(chǎn)品及技術(shù)分銷商 e絡(luò)盟 現(xiàn)為客戶供應(yīng)小巧、快速、多功能的 Raspberry Pi Pico 2。
    的頭像 發(fā)表于 10-12 16:57 ?1013次閱讀

    e絡(luò)盟開售Raspberry Pi AI 攝像頭

    安富利旗下全球電子元器件產(chǎn)品與解決方案分銷商e絡(luò)盟開售全新 Raspberry Pi AI攝像頭,這是 Raspberry Pi 的最新產(chǎn)品,擴(kuò)大了 e絡(luò)盟的人工智能設(shè)備范圍。
    的頭像 發(fā)表于 10-10 10:09 ?564次閱讀
    e絡(luò)盟開售<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> AI 攝像頭

    e絡(luò)盟發(fā)售功能強(qiáng)大的入門級(jí) Raspberry Pi 5 2GB

    安富利旗下全球電子元器件產(chǎn)品與解決方案分銷商e絡(luò)盟日前開售極具性價(jià)比的全新 Raspberry Pi 5 2GB。
    的頭像 發(fā)表于 09-02 10:39 ?660次閱讀
    e絡(luò)盟發(fā)售功能強(qiáng)大的入門級(jí) <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 2GB

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?
    發(fā)表于 08-26 08:28