同樣是用STM32點(diǎn)亮一顆LED燈,寄存器和庫(kù)有什么區(qū)別?
我們先嘗試用寄存器點(diǎn)亮。
首先在創(chuàng)建工程的時(shí)候就比較麻煩,新建工程,起個(gè)名字,選擇一個(gè)合適的芯片,新建main.c,然后隨手來(lái)一個(gè)main函數(shù)。
32的工程和51還不太一樣,需要在工程里面添加啟動(dòng)文件,這個(gè)啟動(dòng)文件在ST的官網(wǎng)能找到。
編譯代碼的時(shí)候,會(huì)提示缺少各種頭文件,這些頭文件,在官網(wǎng)的標(biāo)準(zhǔn)庫(kù)里面也能找到,按照提示拷貝進(jìn)去就行。
準(zhǔn)備工作做好了,就是真正開始點(diǎn)燈的時(shí)候,這一步必須要借助原理圖和芯片手冊(cè)。
配置GPIO時(shí)鐘、引腳模式、輸出方式、輸出速度、上拉、輸出高電平,這一波操作下來(lái),如果英文水平一般,那真的很痛苦。
代碼寫的比較隨意,也沒用位移操作,純粹就是為了點(diǎn)個(gè)燈。運(yùn)行代碼,燈確實(shí)亮了。
總結(jié)一下,用寄存器點(diǎn)燈確實(shí)麻煩,建立工程麻煩,讀芯片手冊(cè)也麻煩。
毫不夸張的說(shuō),如果沒有基礎(chǔ),芯片又比較冷門,半天時(shí)間,保證你可以從入門到放棄。
而且剪輯視頻的時(shí)候,很多細(xì)節(jié)還沒放進(jìn)去,比如微庫(kù),比如重置運(yùn)行,少一個(gè),你都要倒騰半天時(shí)間。
再來(lái)看下HAL庫(kù)點(diǎn)燈,選擇HAL庫(kù),就是因?yàn)樗詈?jiǎn)單。
配合cubemx,創(chuàng)建工程也只是分分鐘的事。
打開main函數(shù),其實(shí)步驟跟剛才的差不多,只是配置時(shí)鐘,從剛才的寄存器變成了調(diào)用函數(shù),好處就是,記住這個(gè)函數(shù)名就行,不用去看芯片手冊(cè)。
至于剛才的配置引腳模式、輸出方式等等,都變成了一個(gè)結(jié)構(gòu)體,結(jié)合庫(kù)手冊(cè),給結(jié)構(gòu)體成員逐個(gè)賦值就行。
接下來(lái),再次調(diào)用兩個(gè)函數(shù),一個(gè)初始化、一個(gè)讓引腳輸出。只要你不去刨根問底,用庫(kù)來(lái)實(shí)現(xiàn)功能,比寄存器簡(jiǎn)單的多,對(duì)新手也特別的友好。
審核編輯:劉清
-
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108484 -
寄存器
+關(guān)注
關(guān)注
31文章
5377瀏覽量
121364 -
STM32
+關(guān)注
關(guān)注
2274文章
10929瀏覽量
357928 -
HAL庫(kù)
+關(guān)注
關(guān)注
1文章
121瀏覽量
6402
原文標(biāo)題:同樣是點(diǎn)燈,看看寄存器和庫(kù)的區(qū)別
文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
用寄存器點(diǎn)亮led燈
使用STM32點(diǎn)亮LED燈的方法
認(rèn)識(shí)STM32用寄存器點(diǎn)亮LED
STM32點(diǎn)亮LED包括寄存器和庫(kù)函數(shù)兩種方法
STM32寄存器點(diǎn)亮LED簡(jiǎn)介
寄存器與靜態(tài)庫(kù)
![<b class='flag-5'>寄存器</b>與靜態(tài)<b class='flag-5'>庫(kù)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
配置STM32寄存器控制GPIO點(diǎn)亮LED
![配置<b class='flag-5'>STM32</b><b class='flag-5'>寄存器</b>控制GPIO<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論