這里使用STM32進(jìn)行學(xué)習(xí)、開(kāi)發(fā)的朋友較多。那么,STM32CubeMX可能就是大家必備的一個(gè)工具。
1寫(xiě)在前面
從公眾號(hào)后臺(tái)、微信給我留言的問(wèn)題可以看得出來(lái),使用STM32CubeMX這個(gè)工具的人有很多。
那么,使用STM32CubeMX進(jìn)行配置、開(kāi)發(fā)時(shí),相信大家都需要過(guò)各種各樣的問(wèn)題。
我也不例外,我是15年開(kāi)始使用STM32CubeMX這個(gè)工具,這些年來(lái)陸陸續(xù)續(xù)也遇到過(guò)很多問(wèn)題,特別是剛開(kāi)始的時(shí)候,感覺(jué)整個(gè)人都不好受。但是,好在我把遇到的問(wèn)題多逐步解決了。
今天,和大家說(shuō)說(shuō):如果你選擇STM32作為硬件平臺(tái),你有必要學(xué)習(xí)一下STM32CubeMX這個(gè)工具。
2
入門(mén)有必要選擇STM32Cube HAL庫(kù)開(kāi)發(fā)嗎?
這里我給的答案是:No
這個(gè)問(wèn)題見(jiàn)仁見(jiàn)智,但是從關(guān)注我公眾號(hào)的讀者朋友中,我綜合給出的答案是No.
原因:很多朋友的基礎(chǔ)還是偏弱。
HAL這套庫(kù)是需要有一定數(shù)據(jù)結(jié)構(gòu)功底的朋友來(lái)學(xué)習(xí)。簡(jiǎn)單說(shuō),你需要對(duì)指針、結(jié)構(gòu)體、回調(diào)函數(shù)等這類(lèi)C語(yǔ)言知識(shí)有一定掌握才行。
使用過(guò)STM32Cube進(jìn)行開(kāi)發(fā)的朋友都應(yīng)該經(jīng)歷過(guò)這過(guò)問(wèn)題:一旦底層有問(wèn)題,去找這個(gè)問(wèn)題相比SPL(標(biāo)準(zhǔn)外設(shè)庫(kù))要難得多。
當(dāng)然,如果你對(duì)HAL這套庫(kù)比較了解的話,其實(shí)難度也不大。
所以,我的建議是:如果你數(shù)據(jù)結(jié)構(gòu)功底不好,可以先從寄存器、標(biāo)準(zhǔn)外設(shè)庫(kù)開(kāi)始,當(dāng)你基礎(chǔ)知識(shí)累計(jì)一定程度,可以轉(zhuǎn)向STM32Cube HAL開(kāi)發(fā)。
3
有必要學(xué)習(xí)一下STM32CubeMX
當(dāng)然,上面給出的入門(mén)建議不是說(shuō)不鼓勵(lì)大家去學(xué)習(xí)一下STM32CubeMX。這節(jié)說(shuō)的就是你有必要學(xué)習(xí)一下STM32CubeMX。
學(xué)習(xí)STM32CubeMX的目的:你會(huì)有意想不到的收獲。
上面我說(shuō)了,我也是踩了很多坑過(guò)來(lái)的,但一路過(guò)來(lái),我發(fā)現(xiàn)其實(shí)我收獲還蠻大的。
包括很多基礎(chǔ)的問(wèn)題,可能你之前從來(lái)沒(méi)了解過(guò)。這里也羅列一些問(wèn)的較多的問(wèn)題吧。
1.中文路徑
在生成MDK-ARM工程時(shí),中文路徑會(huì)出錯(cuò):

看英文提示:在...路徑下生成工程出現(xiàn)錯(cuò)誤。
2.自己寫(xiě)的代碼,重新生成會(huì)被刪除
這里需要進(jìn)行配置,并且你的代碼需要在指定位置(BEGIN --- END內(nèi))。


這樣,當(dāng)你重新生成工程時(shí),這些代碼就不會(huì)被刪除。
3.警告

這里看一下提示就知道:大概意思就是多了一個(gè)括號(hào)。
4.__weak弱定義

很多朋友可能之前都沒(méi)有見(jiàn)過(guò)【__weak】這個(gè)關(guān)鍵字,它有“弱”的意思。
這里的意思就是說(shuō):如果你自己寫(xiě)一個(gè)同樣的函數(shù)(HAL_UART_MspDeInit),那么,這里帶有weak關(guān)鍵字的函數(shù)就不起作用。
還有,有朋友問(wèn):不知道工程中很多UNUSED函數(shù)是什么意思。你自己看一下注釋就知道,它的為了防止編譯警告,“未使用的函數(shù)”。
只要你愿意去發(fā)現(xiàn)問(wèn)題,并解決問(wèn)題,你就有收獲。
4總結(jié)
1.遇到問(wèn)題,看提示找問(wèn)題。
幾個(gè)英文單詞不認(rèn)識(shí)的話,翻譯工具應(yīng)該知道吧。久而久之你會(huì)發(fā)現(xiàn)有些問(wèn)題都不是什么問(wèn)題。
2.使用STM32CubeMX之后,你會(huì)發(fā)現(xiàn)你掌握了更多之前沒(méi)有掌握的知識(shí)。
上面舉的幾個(gè)例子,相信肯定有朋友不知道的這些知識(shí),我們學(xué)習(xí)都是一個(gè)積累的過(guò)程。
3.不要一來(lái)就問(wèn)有沒(méi)有捷徑,遇到一點(diǎn)小問(wèn)題都不去面對(duì),永遠(yuǎn)沒(méi)有捷徑。
-
STM32
+關(guān)注
關(guān)注
2309文章
11161瀏覽量
373380 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41580 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
290瀏覽量
17352
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問(wèn)RT-Thread與stm32cubemx聯(lián)合開(kāi)發(fā)的原理是什么?
意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE中
使用STM32CubeMX的時(shí)候創(chuàng)建的工程已經(jīng)使用的板載資源如何去掉?
對(duì)于在STM32CubeMx使用FMC中的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?
STM32CubeMX配置STM32G070RBT6TR時(shí)為什么無(wú)法使能PVD中斷?
STM32CubeMX配置STM32G070RBT6TR時(shí)無(wú)法使能PVD中斷怎么辦?
STM32開(kāi)發(fā)入門(mén)進(jìn)階必備!《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》新書(shū)發(fā)布!
淺談STM32CubeMX的理解心得與運(yùn)用
評(píng)論