本文作者:Miler Shao STM32家族中有腳位少又帶USB或CAN功能的芯片嗎?答案是肯定的。 目前STM32家族9大系列中的STM32F0系列中就有20腳并帶USB和CAN外設(shè)模塊的芯片,他們是STM32F042Fx或STM32F070Fx [x識具體料號而定]。  剛好最近有人詢問希望從STM32芯片中挑一款腳位少且?guī)SB設(shè)備功能的芯片,為其推薦了STM32F042F6P6。 當使用STM32CUBEMx去嘗試對STM32F042F6P6做管腳配置定義時,突然發(fā)現(xiàn)有點不對勁!左邊的外設(shè)管腳配置欄里的USB灰灰如也,呈無效狀態(tài)。數(shù)據(jù)手冊有誤還是STM32CUBEMX配置工具不健全?這種情況下,優(yōu)先研讀數(shù)據(jù)手冊為準。打開其數(shù)據(jù)手冊,手冊上赫然寫著各類片上資源,USB模塊就是其中之一。
 數(shù)據(jù)手冊里的管腳圖如下:


從管腳圖上不難看出第17、18腳的PA9/PA10與PA11/PA12的管腳安排定義的頗為別具一格。結(jié)合管腳圖下方的那句說明與管腳描述,我們可以知曉,對于20腳的SMT32F042來講,第17、18腳的默認就是PA9/PA10,可以復用為表格中標明的相關(guān)外設(shè)功能腳,但不能作為其它額外功能腳,比方USB端口。如果通過SYSCFG控制器進行相關(guān)配置,可以將第17、18腳的功能重映射為PA11、PA12,并可復用為表格中標明的其它外設(shè)功能腳,也可以作為USB的端口的額外功能腳。 看到這里我們基本明白了剛才在STM32CUBEMX配置那里看不到有效的USB外設(shè)的原因,很可能是缺少SYSCFG控制器的相關(guān)配置。回到STM32CUBEMX再看看。在PIN CONFIG欄的SYS位置,點開即可看到關(guān)于PA11/12代替PA9/10的選項,勾選后立即看道另外一番情景。USB外設(shè)也由灰色無效狀態(tài)轉(zhuǎn)為有效狀態(tài),然后可以繼續(xù)做USB相關(guān)配置的勾選。  顯然,這顆小小20腳芯片是支持USB FS設(shè)備功能的,注意它支持DEVICE功能,只做從機,不能做主機。
前面還提到STM32F042F6P6也支持CAN功能,在配置時我們不難發(fā)現(xiàn),開啟了USB就沒法同時開啟CAN,反之亦然。這不難理解,畢竟有時魚和熊掌很難兼得。 如果要配置CAN功能,同樣也得在SYSCFG外設(shè)那里要先做上面提過的第17、18腳的重映射操作,否則沒法做CAN的配置。 STM32的管腳復用是其一大特色,靈活可調(diào)的特性給工程應用帶來極大方便的同時,往往也會給初次使用者帶來些許難度或困惑。幸好ST官方出品了STM32CUBEMX圖形配置工具,可以解放很多研究手冊的工作量。不過在使用CUBEMX配置遇到疑惑時,還請回頭看看數(shù)據(jù)手冊找原因或做確認。

?最后順便提下基于STM32F0系列MCU開發(fā)的三個參考軟件代碼庫: STM32Snippets:基于寄存器訪問級的STM32芯片外設(shè)應用的示例代碼集合。對于希望兼顧程序容量和性能最優(yōu)化的用戶來說是最佳選擇。對于那些之前從事8位 MCU開發(fā)而想過渡到32位MCU應用的用戶來說,也是個不錯的選擇。STM32F0 MCU參考手冊中書寫了許多STM32Snippets F0示例代碼,可以幫助理解文字描述,非常值得一讀。 Standard Peripheral Library:即標準外設(shè)庫,估計很多人都不陌生了。基于各STM32系列的外設(shè)操作的通用函數(shù)集合,尤其在STM32系列內(nèi)部可以非常方便地實現(xiàn)移植。 STM32Cube嵌入式軟件庫:拓展和強化了STM32產(chǎn)品各系列間實現(xiàn)可移植的通用性。除了標準庫具有的外設(shè)操作函數(shù)庫外,還集成了大量中間件函數(shù)庫與參考工程例程,比如FATFS,RTOS,USB,EMWIN等應用的軟件應用套件。 當然了,上面三種參考代碼庫可以認為是屬于不同風格、不同量級的產(chǎn)品,最終選擇哪一款結(jié)合你自己的工程項目需求和個人偏好即可。 |