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

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

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

【藍(lán)橋杯嵌入式】第三章 LED流水燈

撞上電子 ? 2023-09-26 08:00 ? 次閱讀

第一節(jié) 硬件解讀

先看看原理圖:

c0211eaa-5bff-11ee-9788-92fbcf53809c.png

和普通的開(kāi)發(fā)板不同,藍(lán)橋杯嵌入式的開(kāi)發(fā)板通過(guò)一個(gè)74HC573芯片之后,連接到LED和限流電阻。那么74HC573是什么呢?我們可以通過(guò)數(shù)據(jù)手冊(cè)找到他的真值表,如下:

c035b89c-5bff-11ee-9788-92fbcf53809c.png

從上表我們可以得到一個(gè)結(jié)論,只有在OE#和LE分別為L(zhǎng)和H的時(shí)候,Output才會(huì)隨Input變化而變化,所以我們控制了OE#和LE,只要其中一個(gè)不符合條件,不管Input是什么,Output的狀態(tài)都不會(huì)改變,從而保護(hù)了Output的狀態(tài),得到鎖存的效果,如果大家需要補(bǔ)充這里的知識(shí),建議大家去看數(shù)電的知識(shí),或者百度搜索“鎖存器”。

從上面的原理圖我們可以看出,OE#已經(jīng)是低電平了,那么就只有LE了,也就是PD2引腳,當(dāng)PD2引腳是高電平,單片機(jī)就可以控制LED了;如果是低電平,就無(wú)法控制了。例如,我們讓LD1點(diǎn)亮的流程應(yīng)該是:?jiǎn)纹瑱C(jī)控制PD2為高電平,打開(kāi)鎖存器,讓單片機(jī)可以控制LED->單片機(jī)控制PC8引腳為低電平,讓LD1亮->單片機(jī)控制PD2為低電平,關(guān)閉鎖存器,讓單片機(jī)無(wú)法控制LED。

第二節(jié)CubeMX配置

第一步:雙擊打開(kāi)STM32CubeMX,,如下圖,新建項(xiàng)目。注意:新建項(xiàng)目本教程只介紹一次,以后項(xiàng)目的建立不在重復(fù)。

c044f348-5bff-11ee-9788-92fbcf53809c.png

第二步:在英文狀態(tài)下搜索芯片:STM32G431RBT6,選后選擇對(duì)應(yīng)的芯片即可。注意:搜索芯片時(shí),確保輸入法在英文的狀態(tài)下;選擇芯片的時(shí)候,可以選擇后綴帶有“TR”的,2者芯片完全一致,不影響比賽。

c04f005e-5bff-11ee-9788-92fbcf53809c.png

第三步:配置下載器,如下圖。注意:本教程下載器配置是配置一遍,后續(xù)教程將不再重復(fù)。

c0597322-5bff-11ee-9788-92fbcf53809c.png

第四步:配置STM32的時(shí)鐘注意:本教程時(shí)鐘配置是配置一遍,后續(xù)教程將不再重復(fù)。如下:

c089ffec-5bff-11ee-9788-92fbcf53809c.png

c0a322a6-5bff-11ee-9788-92fbcf53809c.png

第五步:選擇項(xiàng)目信息,如下配置:2處是項(xiàng)目的名字;3處是項(xiàng)目的路徑;4處是編譯器;5處是編譯器版本注意:項(xiàng)目路徑不能包含中文等其他非法字符;編譯器一定要選擇MDK-ARM;編譯器版本一定要選擇v5。后續(xù)教程將不在重復(fù)本步操作。

c0b2a46a-5bff-11ee-9788-92fbcf53809c.png

第六步:如下圖,將3,4處的按鈕勾選,點(diǎn)擊5處,生成Keil工程。注意:后續(xù)教程將不在重復(fù)本步操作。

c0c38ea6-5bff-11ee-9788-92fbcf53809c.png

第七步:點(diǎn)擊上步的5處之后,會(huì)有一個(gè)對(duì)話框,意思分別是:打開(kāi)項(xiàng)目文件夾位置;打開(kāi)項(xiàng)目;關(guān)閉本窗口。注意:這里靈活處理,打開(kāi)文件夾和項(xiàng)目都可以。后續(xù)教程將不在重復(fù)本步操作。

c0ced61c-5bff-11ee-9788-92fbcf53809c.png

第八步:注意,以上操作是建立工程必備的操作,以后的教程不在重復(fù)?,F(xiàn)在重新打開(kāi)STM32CubeMX,開(kāi)始配置LED的相關(guān)引腳。

c0de4a52-5bff-11ee-9788-92fbcf53809c.png

c0ea17b0-5bff-11ee-9788-92fbcf53809c.png

c0f49780-5bff-11ee-9788-92fbcf53809c.png

第九步:重新生成代碼。

第三節(jié)MDK代碼

第一步,編譯代碼,檢查STM32CubeMX生成的代碼是否正常。如下圖,點(diǎn)擊1處編譯,之后在2處可以看見(jiàn):0錯(cuò)誤,0警告。注意:后續(xù)教程將不在重復(fù)本步操作。

c0fef0c2-5bff-11ee-9788-92fbcf53809c.png

第二步:配置下載器,這一步很多步驟,希望大家仔細(xì)一點(diǎn),一步一步來(lái)。注意:不要忘記點(diǎn)擊“OK”,后續(xù)教程將不在重復(fù)本步操作。

c1154994-5bff-11ee-9788-92fbcf53809c.png

第三步:新建.h文件。在“項(xiàng)目名/Core/Inc”中新建一個(gè)“Zsdz.h”的文件。注意:后續(xù)教程將不在重復(fù)本步操作。

c12b47f8-5bff-11ee-9788-92fbcf53809c.png


第四步:新建.c文件。在“項(xiàng)目名/Core/Src”中新建一個(gè)“Zsdz.c”的文件。注意:后續(xù)教程將不在重復(fù)本步操作。

c139ec68-5bff-11ee-9788-92fbcf53809c.png

第五步:添加“Zsdz.c”文件。點(diǎn)擊1處,可以看見(jiàn)項(xiàng)目的所有的文件,點(diǎn)擊2,3處,準(zhǔn)備添加“Zsdz.c”文件,但是發(fā)現(xiàn)沒(méi)有“Zsdz.c”文件,如下圖:需要返回到上一層文件目錄中,點(diǎn)擊4處。注意:后續(xù)教程將不在重復(fù)本步操作。

c1437968-5bff-11ee-9788-92fbcf53809c.png

如下圖:雖然沒(méi)有發(fā)現(xiàn)“Zsdz.c”文件,但是我們看見(jiàn)了Core文件夾,還記得我們的“Zsdz.c”文件保存在哪嗎?在“項(xiàng)目名/Core/Src”中,所以我們進(jìn)入到“/Core/Src”,找到“Zsdz.c”文件即可。注意:后續(xù)教程將不在重復(fù)本步操作。


c14c0326-5bff-11ee-9788-92fbcf53809c.png

第六步:如下圖,代表添加成功。注意:后續(xù)教程將不在重復(fù)本步操作。

c15e86d6-5bff-11ee-9788-92fbcf53809c.png

第七步:注意:如果利用STM32CubeMX生成MDK項(xiàng)目,“Zsdz.c”文件可能會(huì)從MDK項(xiàng)目中移除,請(qǐng)重新添加。

第八步:編寫(xiě)“Zsdz.c”文件的代碼,如下:注意:后續(xù)教程將不在重復(fù)本步操作。

c1738d38-5bff-11ee-9788-92fbcf53809c.png

第九步:進(jìn)入到“Zsdz.h”文件,右鍵,選擇“Go to Headerfile‘Zsdz.h’”。注意:后續(xù)教程將不在重復(fù)本步操作。


c184acbc-5bff-11ee-9788-92fbcf53809c.png

第十步:編寫(xiě)“Zsdz.h”文件的代碼,如下:注意:后續(xù)教程將不在重復(fù)本步操作。

c19b571e-5bff-11ee-9788-92fbcf53809c.png

第十一步:在Main中添加“Zsdz.h文件”,如下:注意:只可以添加在“USER CODE END”和“USER CODE BEGIN”之間,否則等下次利用STM32CubeMX生成MDK項(xiàng)目時(shí),不在“USER CODE END”和“USER CODE BEGIN”之間的代碼會(huì)被覆蓋。

c1b1549c-5bff-11ee-9788-92fbcf53809c.png

第十二步:編寫(xiě)LED的函數(shù)模板,具體如下:注意:不要忘記聲明gpio.c文件。注意:后續(xù)教程將不在重復(fù)本步操作。

c1c62732-5bff-11ee-9788-92fbcf53809c.png

c1cee0de-5bff-11ee-9788-92fbcf53809c.png

c1d83eb8-5bff-11ee-9788-92fbcf53809c.png

c1e147ba-5bff-11ee-9788-92fbcf53809c.png

第十三步:以上就是LED所有的封裝函數(shù)了,我們?cè)凇癦sdz.h”文件中聲明他們,如下圖:注意:后續(xù)教程將不在重復(fù)本步操作。

c1f821f6-5bff-11ee-9788-92fbcf53809c.png

第十四步:現(xiàn)在隨便在main函數(shù)中寫(xiě)幾個(gè),看看效果。

c2075cca-5bff-11ee-9788-92fbcf53809c.png

c21e3aee-5bff-11ee-9788-92fbcf53809c.png

第十五步:編譯檢查代碼并下載。點(diǎn)擊1處編譯代碼,之后在2處可以看見(jiàn)0錯(cuò)誤0警告。代碼沒(méi)有問(wèn)題之后,點(diǎn)擊3處下載代碼,在4處看見(jiàn)Flash Load finished at xxxx,就證明代碼下載成功。注意:后續(xù)教程將不在重復(fù)本步操作。

c2286a28-5bff-11ee-9788-92fbcf53809c.png

第四節(jié)實(shí)驗(yàn)現(xiàn)象

注意:請(qǐng)用USB線連接電腦與開(kāi)發(fā)板,注意是CN2口。

現(xiàn)象:500ms為間隔的流水燈。

來(lái)源:撞上電子微信公眾號(hào)

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

    關(guān)注

    240

    文章

    23062

    瀏覽量

    657053
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302031
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    432

    瀏覽量

    59598
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第三四章閱讀報(bào)告

    在深入閱讀了《嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》的第三、四后,我對(duì)嵌入式Hypervisor的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)有了更為詳盡和系統(tǒng)的理解。以下是我對(duì)這兩
    發(fā)表于 10-09 18:29

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第一二讀后感

    非常感謝社區(qū)提供的閱讀機(jī)會(huì),拿到書(shū)后,就迫不及待的的開(kāi)始閱讀了。 社區(qū)還有簽名留念呢,值得紀(jì)念。 《嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》的第一、二為讀者提供了關(guān)于Hypervisor技術(shù)
    發(fā)表于 10-09 18:22

    《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV簡(jiǎn)介

    第三章 CanMV簡(jiǎn)介 本章將對(duì)CanMV進(jìn)行簡(jiǎn)單介紹本章分為如下幾個(gè)小節(jié):3.1 初識(shí)CanMV 3.2 CanMV的應(yīng)用開(kāi)發(fā)方式 3.1 初識(shí)CanMVCanMV是嘉楠科技針對(duì)AIOT編程
    發(fā)表于 09-03 10:13

    迅為電子RK3588S開(kāi)發(fā)板第三章Buildroot系統(tǒng)功能測(cè)試

    迅為電子RK3588S開(kāi)發(fā)板第三章Buildroot系統(tǒng)功能測(cè)試
    的頭像 發(fā)表于 09-02 14:45 ?641次閱讀
    迅為電子RK3588S開(kāi)發(fā)板<b class='flag-5'>第三章</b>Buildroot系統(tǒng)功能測(cè)試

    【「ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片」閱讀體驗(yàn)】+書(shū)籍整體概況

    ,12教學(xué)課件,2423分鐘的視頻講解內(nèi)容,還提供40個(gè)示例源碼。 書(shū)籍的背面介紹了此書(shū)背后的幾位具有影響力的開(kāi)創(chuàng)者,以及獲取此圖書(shū)資源的二維碼,書(shū)籍標(biāo)價(jià)等信息。 、書(shū)籍前言 前言部分介紹了當(dāng)代嵌入式
    發(fā)表于 08-25 22:48

    學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)

    、PRTOS的配套工具等內(nèi)容。第三部分(第13~15)介紹嵌入式Hypervisor的高級(jí)應(yīng)用和未來(lái)規(guī)劃,涵蓋μC/OS-II與Linux內(nèi)核的虛擬化過(guò)程,以及PRTOS社區(qū)的愿景等內(nèi)容。
    發(fā)表于 08-25 09:11

    嵌入式機(jī)電一體化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》讀后感

    的重要作用。 第三章則是關(guān)于嵌入式水下航行器(ROV/URV)系統(tǒng)的建模與仿真,這是本書(shū)的一大亮點(diǎn)。通過(guò)對(duì)ROV動(dòng)力學(xué)模型的詳細(xì)闡述,包括水動(dòng)力阻尼模型、水動(dòng)力附加質(zhì)量模型等,我深刻理解了復(fù)雜機(jī)械系統(tǒng)
    發(fā)表于 08-21 08:45

    雙麒麟系統(tǒng)!迅為RK3588開(kāi)發(fā)板+銀河麒麟/開(kāi)放麒麟

    現(xiàn)代化的用戶界面和豐富的開(kāi)發(fā)工具,適用于臺(tái)式機(jī)、筆記本和嵌入式設(shè)備,致力于推動(dòng)國(guó)產(chǎn)操作系統(tǒng)的自主研發(fā)和生態(tài)建設(shè)。 部分功能演示截圖 更新目錄 第一 功能適配表 第二 Android系統(tǒng)功能測(cè)試
    發(fā)表于 07-15 10:35

    單片機(jī)POV LED流水燈制作

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)POV LED流水燈制作.docx》資料免費(fèi)下載
    發(fā)表于 05-28 14:34 ?3次下載

    【紫光同創(chuàng)盤(pán)古PGX-Nano教程】——(盤(pán)古PGX-Nano開(kāi)發(fā)板/PG2L50H_MBG324第三章)鍵控流水燈實(shí)驗(yàn)例程

    燈、按鍵、撥碼開(kāi)關(guān)等。 二:實(shí)驗(yàn)?zāi)康?由PB0(即開(kāi)發(fā)板S0位置)按鍵輸入,切換LED0~LED7的輸出效果。 :實(shí)驗(yàn)原理 實(shí)現(xiàn)框架如下: (1)頂層實(shí)現(xiàn)按鍵切換LED
    發(fā)表于 04-29 16:06

    【每周一練】盤(pán)古1K開(kāi)發(fā)板 練習(xí)一:LED流水燈實(shí)驗(yàn)學(xué)習(xí)

    實(shí)驗(yàn)?zāi)康?熟悉PDS開(kāi)發(fā)流程,掌握流水燈原理并實(shí)現(xiàn)流水燈 實(shí)驗(yàn)要求 設(shè)計(jì)8個(gè)LED以0.5s間隔接替點(diǎn)亮 實(shí)現(xiàn)代碼 `define UD #1 module led
    發(fā)表于 12-09 14:20

    分享花樣流水燈源程序

    電子發(fā)燒友網(wǎng)站提供《分享花樣流水燈源程序.doc》資料免費(fèi)下載
    發(fā)表于 11-18 09:59 ?3次下載
    分享花樣<b class='flag-5'>流水燈</b>源程序

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第3

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第3.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:19 ?0次下載
    <b class='flag-5'>嵌入式</b>Linux應(yīng)用程序開(kāi)發(fā)詳解-第3<b class='flag-5'>章</b>

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第2

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第2.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:18 ?0次下載
    <b class='flag-5'>嵌入式</b>Linux應(yīng)用程序開(kāi)發(fā)詳解-第2<b class='flag-5'>章</b>

    嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第1

    電子發(fā)燒友網(wǎng)站提供《嵌入式Linux應(yīng)用程序開(kāi)發(fā)詳解-第1.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 11:17 ?0次下載
    <b class='flag-5'>嵌入式</b>Linux應(yīng)用程序開(kāi)發(fā)詳解-第1<b class='flag-5'>章</b>