這里分享我們在STM32應用中可能遇到的兩個小話題,尤其對于STM32應用新手。
話題一、STM32管腳重映射支持任意組合嗎?
有人使用STM32F4芯片做開發,用到USART1外設。發現有4個GPIO管腳可以支持USART1復用,即PA9,PA10,PB6,PB7。
他在21論壇發帖咨詢在保持TX或RX功能不變的前提下,這4個管腳是否基于TX/RX功能自由組合呢?即是否支持下圖中箭頭所指的4種組合來使用。
在我的印象中,STM32系列中只有最早推出的STM32F1系列的管腳復用功能稍微弱點外,其它系列在外設功能端口與GPIO復用方面表現得更為靈活。比方以USART1的復用管腳為例,STM32F1系列是以組為單位,僅支持PA9/PA10或PB6/PB7兩種組合。而后推出的其它STM32系列,仍以USART1為例,都支持上面的4種組合。
換言之,后面推出的STM32系列管腳復用功能往往是以單個管腳進行配置,不再以組為單位進行配置鎖定,為開發者自由安排管腳提供方便。具體到開篇話題本身,STM32F4系列芯片的USART1是完全支持上面列舉的4種組合的。該發帖者后來進一步補充說,經過多個小時的驗證發現也的確支持上面的4種使用組合。
其實,關于這個問題,完全不必要花幾個小時來確認。
我們使用CubeMx進行配置時即可快速驗證。比如當我們選擇開啟USART1后,CubeMx會先給我們安排兩個可用USART1通信管腳。此時我們可以按住鍵盤上的CTRL鍵并保持住,然后鼠標左鍵點擊當前安排的USART功能腳,并做拽拉動作,其它跟當前被拽拉腳具有相同功能的管腳就會閃動起來。然后我們就可以嘗試去做替換,將當前功能腳替換為新的管腳。
通過這種方法,我們不難找出所有可能使用的組合。以STM32F4系列的USART1的復用管腳為例,基于CubeMx配置就可以直觀地看到4種可使用的組合。見下面幾幅圖。
話題二、STM32F407 讀保護從leve0設置leve1程序不再運行疑似丟失。
有人在程序調試階段,通過用戶代碼修改選項字節開啟讀保護功能。發現實施此操作后,不僅程序停擺不運行了,STLINK也連不上開發板,感覺代碼被擦除一般。
其實,這是個比較常見的話題。當我們通過用戶代碼開啟讀保護功能后,芯片開啟保護機制。肯定會斷開調試器不讓我們繼續代碼的調試。試想下,如果都開啟讀保護了還能做程序調試,那還保護啥呢?此時發生上面提到的現象屬正常。
開啟了讀保護不讓調試了,可以理解。但我們欲用STLINK連接開發板抹掉讀保護總可以吧。可以!
不過,你必須對開發板做斷電再上電的操作。注意,若只是按復位鍵還不行。再用SLTINK連接,然后通過諸如STM32CubeProgrammer之類的工具修改讀保護設置。
關于這點,在STM32手冊里有相應的描述,我截圖幾份過來參閱,分別是STM32F0、STM32F4和STM32L4系列的,描述上不盡相同,但都有表達相同的意思。
OK,今天的分享就到這里。下次再聊!
審核編輯:劉清
-
單片機
+關注
關注
6039文章
44582瀏覽量
636484 -
連接器
+關注
關注
98文章
14576瀏覽量
136778 -
STM32
+關注
關注
2270文章
10910瀏覽量
356602 -
GPIO
+關注
關注
16文章
1212瀏覽量
52182 -
STM32F4
+關注
關注
3文章
194瀏覽量
28094 -
CTR
+關注
關注
0文章
37瀏覽量
14135 -
USART串口
+關注
關注
0文章
32瀏覽量
6867
原文標題:STM32管腳重映射支持任意組合嗎?
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論