Ⅰ、寫在前面
很多朋友初學(xué)STM32的時(shí)候,對STM32芯片很多相關(guān)知識都不是很了解,導(dǎo)致了在學(xué)習(xí)的路上很迷茫,甚至半途放棄。希望本文的內(nèi)容對初學(xué)的朋友有一定幫助。
常見問題:
1.我開發(fā)板是STM32F103ZE芯片,但網(wǎng)上找到的軟件工程基于STM32F103R8芯片的,我能直接將工程下載并調(diào)試嗎?
2.我有STM32F205R8的原理圖和封裝庫,但現(xiàn)在需要畫STM32F405RC芯片的板子,能直接替換使用嗎?
以上問題在你閱讀本文之后就會得到比較明確的答案。
關(guān)于本文的更多詳情請往下看。
Ⅱ、本文要點(diǎn)
從本文的標(biāo)題可以看得出來,主要是站在“STM32兼容性”的角度來分析問題。
在開發(fā)STM32項(xiàng)目中,往往是軟件工程師、硬件工程師相互配合完成一個(gè)項(xiàng)目的開發(fā)。STM32兼容性其實(shí)是分硬件和軟件:
硬件兼容性:主要考慮的就是不同型號芯片引腳上是否可以通用。
軟件兼容性:單純的從芯片出發(fā)考慮問題,和硬件開發(fā)相比,軟件開發(fā)需要考慮的問題就有很多。ST公司為了讓軟件開發(fā)工程師能很好的移植代碼,在軟件(庫)兼容性上做的就很好,基本上很多芯片都可以相互使用共同的底層代碼。
本文就結(jié)合ST官網(wǎng)最新手冊及相關(guān)資料,從硬件和軟件角度來簡單講述一下STM32兼容性的問題,希望對你有所幫助。
【下面內(nèi)容牽涉到STM32芯片數(shù)據(jù)手冊、參考手冊,可以下載數(shù)據(jù)手冊查看詳情。相關(guān)文章:開發(fā)STM32相關(guān)資料下載】
Ⅲ、硬件兼容性
硬件兼容性針對的主要是硬件工程師,但作為STM32的軟件工程師也是有必要了解的。
不管是前面說的用不同芯片的原理圖和封裝庫,還是你從一個(gè)項(xiàng)目拷貝部分器件到另一個(gè)項(xiàng)目,在得知STM32硬件兼容性之后,有很多工作都可以省略。
比如:你前面項(xiàng)目使用STM32F205R8設(shè)計(jì)的PCB板子,現(xiàn)在新的項(xiàng)目使用STM32F405RC,而且外部器件只有很小地方的改動,有很多外設(shè)器件和前面項(xiàng)目相同。這時(shí),你的PCB很大一部分走線布局都可以不變,這樣就不用費(fèi)盡心思、花費(fèi)大部分時(shí)間從新再次設(shè)計(jì)那不用修改的部分。
對應(yīng)硬件工程師來說,開發(fā)STM32主要就是選型,可以在官網(wǎng)下載芯片選型手冊、芯片手冊來進(jìn)行參考:
下面就以LQFP64封裝為例,將(F0 - F4)不同系列、型號芯片的引腳圖進(jìn)行對比,相信你們看了引腳圖,就會明白其實(shí)STM32大部分芯片(相同封裝)是可以兼容的。
1.STM32F0系列
2.STM32F1系列
3.STM32F2系列
4.STM32F3系列
5.STM32F4系列
6.綜上所述
以上截圖來自ST官網(wǎng)最新數(shù)據(jù)手冊,可自行到官網(wǎng)下載。
從上面可以看得出來,大部分相同封裝的芯片在引腳上基本上相同。我們雖然是以LQFP64封裝為例,其它封裝也是類似的具有很高的兼容性。
【注意:我這里說的是大部分,不是完全(可能存在略微差異)。因此,在選擇芯片型號時(shí)請查看對應(yīng)數(shù)據(jù)手冊?!?/p>
Ⅳ、軟件兼容性
查看本文的讀者應(yīng)該大部分都是從事軟件開發(fā)的工程師,ST公司推出的芯片在硬件上做了相當(dāng)好的兼容性,在軟件上也不落后,同樣做了很好的兼容性。不管你是利用寄存器還是固件庫(標(biāo)準(zhǔn)外設(shè)庫和HAL庫)開發(fā)STM32,軟件的移植都是很方便的。
這里說的軟件兼容性,主要從兩個(gè)方面來說:寄存器 和 固件庫:
1.固件庫開發(fā)
這里主要考慮固件庫函數(shù)接口一致性的問題。同一系列的芯片固件庫接口都是一樣的,跨系列芯片固件庫其實(shí)ST公司也是做得很好,函數(shù)接口基本上也差不多相同。
說這么一個(gè)實(shí)例吧:硬件上,我將F207芯片的替換為F407芯片;軟件上,我將之前F207的程序移植到F407上依然可以運(yùn)行。
上面這個(gè)實(shí)例說明ST跨系列的芯片也是可以做到軟硬件兼容的。
下面以標(biāo)準(zhǔn)外設(shè)庫來講述一下軟件的兼容性。
A.啟動文件
同一系列芯片的啟動文件在標(biāo)準(zhǔn)庫里面一般有幾個(gè),為什么有幾個(gè)呢?原因很簡單,芯片資源存在一定的不同,一般是向下兼容的。也就是說大容量芯片資料包含小容量芯片資源。
【對比工具Beyond Compare介紹、下載、安裝、破解與基本使用方法】
利用對比工具對F1固件庫啟動文件:
從上面對比情況可以看見,其實(shí)中等容量芯片相比大容量芯片資源要少一些,也就是說中等容量芯片可以在大容量芯片中運(yùn)行。
B.初始化配置源代碼
接觸多系列芯片的朋友可能會發(fā)現(xiàn),很多資源初始化配置大同小異,基本上差不多,USART串口初始化配置源代碼各個(gè)系列基本都是如下一些參數(shù):
2.寄存器開發(fā)
從軟件角度來分析,其兼容性牽涉到底層一點(diǎn)的東西,那就是資源模塊的寄存器(偏移地址)。也可以說各個(gè)資源模塊內(nèi)容很多相同之處。
截取各個(gè)系列USART寄存器:
從上面截圖可以看見,其模塊寄存器基本上差不多。這里最底層對應(yīng)的上層應(yīng)用代碼兼容性就可以做的很好。
Ⅴ、說明
上面說的內(nèi)容是針對大部分ST的MCU芯片,當(dāng)然也不是完全,請根據(jù)實(shí)際情況來分析是否完全兼容。
看完上面內(nèi)容之后,應(yīng)該明白我前面文章提供的軟件工程適合哪些芯片。
以上總結(jié)僅供參考,若有不對之處,敬請諒解。
-
封裝
+關(guān)注
關(guān)注
126文章
7905瀏覽量
142971 -
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356093 -
STM32F103
+關(guān)注
關(guān)注
33文章
477瀏覽量
63664
發(fā)布評論請先 登錄
相關(guān)推薦
評論