第一節(jié) 硬件解讀
先看看原理圖:
和普通的開(kāi)發(fā)板不同,藍(lán)橋杯嵌入式的開(kāi)發(fā)板通過(guò)一個(gè)74HC573芯片之后,連接到LED和限流電阻。那么74HC573是什么呢?我們可以通過(guò)數(shù)據(jù)手冊(cè)找到他的真值表,如下:
從上表我們可以得到一個(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ù)。
第二步:在英文狀態(tài)下搜索芯片:STM32G431RBT6,選后選擇對(duì)應(yīng)的芯片即可。注意:搜索芯片時(shí),確保輸入法在英文的狀態(tài)下;選擇芯片的時(shí)候,可以選擇后綴帶有“TR”的,2者芯片完全一致,不影響比賽。
第三步:配置下載器,如下圖。注意:本教程下載器配置是配置一遍,后續(xù)教程將不再重復(fù)。
第四步:配置STM32的時(shí)鐘,注意:本教程時(shí)鐘配置是配置一遍,后續(xù)教程將不再重復(fù)。如下:
第五步:選擇項(xiàng)目信息,如下配置:2處是項(xiàng)目的名字;3處是項(xiàng)目的路徑;4處是編譯器;5處是編譯器版本。注意:項(xiàng)目路徑不能包含中文等其他非法字符;編譯器一定要選擇MDK-ARM;編譯器版本一定要選擇v5。后續(xù)教程將不在重復(fù)本步操作。
第六步:如下圖,將3,4處的按鈕勾選,點(diǎn)擊5處,生成Keil工程。注意:后續(xù)教程將不在重復(fù)本步操作。
第七步:點(diǎn)擊上步的5處之后,會(huì)有一個(gè)對(duì)話框,意思分別是:打開(kāi)項(xiàng)目文件夾位置;打開(kāi)項(xiàng)目;關(guān)閉本窗口。注意:這里靈活處理,打開(kāi)文件夾和項(xiàng)目都可以。后續(xù)教程將不在重復(fù)本步操作。
第八步:注意,以上操作是建立工程必備的操作,以后的教程不在重復(fù)?,F(xiàn)在重新打開(kāi)STM32CubeMX,開(kāi)始配置LED的相關(guān)引腳。
第九步:重新生成代碼。
第三節(jié)MDK代碼
第一步,編譯代碼,檢查STM32CubeMX生成的代碼是否正常。如下圖,點(diǎn)擊1處編譯,之后在2處可以看見(jiàn):0錯(cuò)誤,0警告。注意:后續(xù)教程將不在重復(fù)本步操作。
第二步:配置下載器,這一步很多步驟,希望大家仔細(xì)一點(diǎn),一步一步來(lái)。注意:不要忘記點(diǎn)擊“OK”,后續(xù)教程將不在重復(fù)本步操作。
第三步:新建.h文件。在“項(xiàng)目名/Core/Inc”中新建一個(gè)“Zsdz.h”的文件。注意:后續(xù)教程將不在重復(fù)本步操作。
第四步:新建.c文件。在“項(xiàng)目名/Core/Src”中新建一個(gè)“Zsdz.c”的文件。注意:后續(xù)教程將不在重復(fù)本步操作。
第五步:添加“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ù)本步操作。
如下圖:雖然沒(méi)有發(fā)現(xiàn)“Zsdz.c”文件,但是我們看見(jiàn)了Core文件夾,還記得我們的“Zsdz.c”文件保存在哪嗎?在“項(xiàng)目名/Core/Src”中,所以我們進(jìn)入到“/Core/Src”,找到“Zsdz.c”文件即可。注意:后續(xù)教程將不在重復(fù)本步操作。
第六步:如下圖,代表添加成功。注意:后續(xù)教程將不在重復(fù)本步操作。
第七步:注意:如果利用STM32CubeMX生成MDK項(xiàng)目,“Zsdz.c”文件可能會(huì)從MDK項(xiàng)目中移除,請(qǐng)重新添加。
第八步:編寫(xiě)“Zsdz.c”文件的代碼,如下:注意:后續(xù)教程將不在重復(fù)本步操作。
第九步:進(jìn)入到“Zsdz.h”文件,右鍵,選擇“Go to Headerfile‘Zsdz.h’”。注意:后續(xù)教程將不在重復(fù)本步操作。
第十步:編寫(xiě)“Zsdz.h”文件的代碼,如下:注意:后續(xù)教程將不在重復(fù)本步操作。
第十一步:在Main中添加“Zsdz.h文件”,如下:注意:只可以添加在“USER CODE END”和“USER CODE BEGIN”之間,否則等下次利用STM32CubeMX生成MDK項(xiàng)目時(shí),不在“USER CODE END”和“USER CODE BEGIN”之間的代碼會(huì)被覆蓋。
第十二步:編寫(xiě)LED的函數(shù)模板,具體如下:注意:不要忘記聲明gpio.c文件。注意:后續(xù)教程將不在重復(fù)本步操作。
第十三步:以上就是LED所有的封裝函數(shù)了,我們?cè)凇癦sdz.h”文件中聲明他們,如下圖:注意:后續(xù)教程將不在重復(fù)本步操作。
第十四步:現(xiàn)在隨便在main函數(shù)中寫(xiě)幾個(gè),看看效果。
第十五步:編譯檢查代碼并下載。點(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ù)本步操作。
第四節(jié)實(shí)驗(yàn)現(xiàn)象
注意:請(qǐng)用USB線連接電腦與開(kāi)發(fā)板,注意是CN2口。
現(xiàn)象:500ms為間隔的流水燈。
來(lái)源:撞上電子微信公眾號(hào)
-
led
+關(guān)注
關(guān)注
240文章
23062瀏覽量
657053 -
嵌入式
+關(guān)注
關(guān)注
5059文章
18973瀏覽量
302031 -
流水燈
+關(guān)注
關(guān)注
21文章
432瀏覽量
59598
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論