STM32入門——基于野火 F407 霸天虎課程學(xué)習(xí)
前言
博主開始探索嵌入式以來,其實(shí)很早就開始玩 stm32 了。但是學(xué)了一段時間之后總是感覺還是很沒有頭緒,不知道在學(xué)什么。前前后后分別嘗試了江協(xié)科技、正點(diǎn)原子、野火霸天虎三次 stm32 的課程學(xué)習(xí)。江協(xié)科技的 stm32f103c8t6 課程看了一段時間,感覺對一些外設(shè)的調(diào)用方法有一個基礎(chǔ)的認(rèn)知了,但是沒有很明白到底在學(xué)什么;正點(diǎn)原子則是有點(diǎn)聽不懂,半字也借給同學(xué)了就有一段時間沒學(xué),感覺自認(rèn)為 stm32 學(xué)的有兩把刷子了。后來聽前輩說江協(xié)科技的 stm32 課程不如 51 單片機(jī)的質(zhì)量好,其實(shí)課程講的一般,我就想:是不是應(yīng)該重新好好學(xué)一下 stm32 課程了。
這次選擇的是野火的 F407 霸天虎課程,第一是聽大家說,入門選野火或者正點(diǎn)最好。第二是野火的大師進(jìn)階篇的一些內(nèi)容,涉及到一些原理等的學(xué)習(xí)講解,我覺得對我會非常有幫助,因此正好就買了這款開發(fā)板從入門到中級到大師原理一起學(xué)習(xí)了。
本系列博文筆記主要基于野火相應(yīng)課程,b站地址:野火F407開發(fā)板-霸天虎視頻-【入門篇】_嗶哩嗶哩_bilibili ,僅供學(xué)習(xí)參考不做任何商業(yè)用途使用,侵刪!
調(diào)試器介紹
我選擇的是高速版,支持 SW 和 JTAG 兩種連接方式。SW 模式則只需要連接 VREF(3V3), TMS(數(shù)據(jù)), TCK, RESET, GND 五個引腳。
程序燒錄配置
芯片型號:STM32F407ZGTX。
DAP 仿真燒錄自然非常簡單。
串口一鍵下載 ISP 下載速度慢,不能調(diào)試,但是成本很低。可以使用 FlyMcu 等軟件。
2023.11.2 補(bǔ)充。
警告,建議如果 flymcu 不能燒錄,就不要嘗試這種玩法了,看看課學(xué)學(xué)得了。因?yàn)槲易约簛y搗鼓一通后把開發(fā)板鎖了。
下面的內(nèi)容我不太清楚具體是哪一步出現(xiàn)了鎖死 flash 的問題,總之不要嘗試!學(xué)習(xí)一下理論得啦。
如果和我一樣鎖死了,請見野火大師篇程序,里面有一個解除寫保護(hù)的代碼,運(yùn)行一下。
ISP 下載方式:允許我們不拆下芯片來下載。對于上個世紀(jì)嵌入式學(xué)習(xí)來說這是一個很大的突破,因?yàn)楫?dāng)時是要把芯片拆下來燒錄編程的。
ISP 廠商出產(chǎn)的時候就選定了一種串行外設(shè)對芯片內(nèi)部 FLASH 進(jìn)行編程,我們不能修改。常用串口下載方式,成本低,但是不能調(diào)試仿真。
普通 ISP 需要手動配置 boot loader,一鍵 ISP 不用,硬件電路和上位機(jī)配合達(dá)到一鍵下載的效果(手動配置:00是用戶閃存啟動,10是系統(tǒng) SRAM/ISP 啟動,普通 ISP 要手動改跳線帽)。
一鍵下載電路的具體原理流程如下:
- RTS 低電平,Q1 是一個 PNP 三極管,導(dǎo)通,BOOT0 拉高。
- DTS 高電平,Q2 NPN 導(dǎo)通,U18 是一個由 EN 控制開關(guān)的模擬開關(guān),2 腳被導(dǎo)通為低電平,連接1腳拉低 NRST 復(fù)位。程序下載執(zhí)行。
- U18 模擬開關(guān)的作用是穩(wěn)定電路。開發(fā)板復(fù)位的時候 DTR RTS 是不穩(wěn)定的狀態(tài),如果沒有這個模擬開關(guān),DTR RTS 可能進(jìn)入 ISP 狀態(tài),復(fù)位,進(jìn)入 ISP 狀態(tài),復(fù)位,進(jìn)入……一直運(yùn)行不起來了。模擬開關(guān)右側(cè)電容使得 VCC 需要花一點(diǎn)時間充電給 EN,而不是立刻激活 EN(EN 1.8V 左右)。這時候 DTR RTS 已經(jīng)穩(wěn)定了,可以導(dǎo)通 U18 12 引腳來給 NRST 復(fù)位了。
不過 FlyMcu 實(shí)際配置方式是反過來的,因?yàn)樗膮f(xié)議是 232(+3~+15 是 0,-3~-15 是 1),和 TTL(3.3v 是1,0v 是0)正相反。
但是實(shí)際操作的時候可能遇到一種狀況:部分開發(fā)板無法使用 FlyMcu 寫入。我就碰到了。解決辦法是使用 stm32 cube programmer 燒錄程序。
配置如下:開發(fā)板上 boot 連接 3v3,RTS DTR=0,選中 read unprotect,建立連接后再燒錄程序。
但是不知道是波特率或者校驗(yàn)位的問題,我每次能成功燒錄進(jìn)去,然后過一會就顯示斷開找不到設(shè)備了。可能是因?yàn)椴ㄌ芈蕸]有76800的選項(xiàng)。
STM32 介紹
正點(diǎn)原子網(wǎng)課:單片機(jī)和電腦的類比:內(nèi)存是 SRAM,硬盤是 FLASH,主板是外設(shè)。
st:意法半導(dǎo)體公司,SoC 廠商。
m:微控制器。微控制器和微處理器相比性能比較拉一點(diǎn),主頻低,微處理器能跑一些大 os(linux)。
32:32位微控制器。
正點(diǎn)原子網(wǎng)課:8051,X86 屬于 CISC;ARM, MIPS, RISC-V 屬于 RISC.
馮諾依曼和哈佛結(jié)構(gòu)的主要區(qū)別:程序存儲器和數(shù)據(jù)存儲器是否分開存儲。不分開是馮諾依曼,分開是哈佛。哈佛執(zhí)行效率更高,馮諾伊曼資源占據(jù)更少。
CORTEX-M 系列介紹
ARM 公司(做精簡指令集計算機(jī)的)只設(shè)計內(nèi)核架構(gòu)和授權(quán)知識產(chǎn)權(quán),不參與設(shè)計芯片,給其他合作公司授權(quán)設(shè)計芯片。半導(dǎo)體廠商再根據(jù)架構(gòu)完善周邊電路并制作芯片?,F(xiàn)在95%手機(jī)、平板都是 ARM 架構(gòu)的, ARM 公司是真的牛。
其優(yōu)點(diǎn)在于低功耗低成本高性能,且支持16/32位雙指令集。
ARM 有9個版本,從 v6 開始出現(xiàn) cortex 的命名。
隨著需求不斷發(fā)展,stm32 在一眾 8/16位 MCU 中脫穎而出。
stm32 自帶許多通信接口,如 spi i2c uart 等;掃地機(jī),無人機(jī),手環(huán)等都可以是 stm32 的作品。
如何選型?以下是幾大類 stm32 的特點(diǎn)。
本課程學(xué)習(xí)使用的開發(fā)板命名方式:
選型:滿足項(xiàng)目需求的前提下,盡可能選便宜的,比如主頻低,功耗低,引腳少,flash 少。
引腳分配:
看手冊的重點(diǎn):
外設(shè)資源,芯片功能,引腳,引腳大致分類,內(nèi)存,封裝……文章來源:http://www.zghlxwxcb.cn/news/detail-738053.html
哎想起前兩天面試被問,如果選型 MCU 我應(yīng)該看哪些因素。我只想到了外設(shè)和內(nèi)存hhh。屬于是只會寫代碼的笨比了。這也是我開始重新看野火課程的原因之一。文章來源地址http://www.zghlxwxcb.cn/news/detail-738053.html
到了這里,關(guān)于野火霸天虎 STM32F407 學(xué)習(xí)筆記_1 stm32介紹;調(diào)試方法介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!