1.最小硬件系統(tǒng)
讓 STM32F030 運(yùn)行起來(lái)非常簡(jiǎn)單,在硬件上僅需給數(shù)字電源和模擬電源引腳(VDD,VDDA)供電,最好分別加上去耦電容。推薦值: VDD引腳加 1個(gè)4.7uF并聯(lián)幾個(gè)0.1uF 電容,VDDA 引腳加 1個(gè)1uF并聯(lián) 1個(gè)0.01uF電容。電容值大些小些,甚至不加,對(duì)調(diào)試都不會(huì)有太大影響。需要注意的是 VDD 需要在2.4V和3.6V之間,VDDA需要大于等于VDD。當(dāng)然我們最常見的用法是把VDD和VDDA都接到3.3V。VDD和VDDA之間用磁珠隔離一下,有助于提高模擬部分電路(ADC, RC震蕩器,PLL等)的穩(wěn)定性。
如上圖,是一個(gè)可以讓單片機(jī)工作起來(lái)的最小硬件系統(tǒng)。Boot0 引腳需要下拉到地。注意電路中沒(méi)有時(shí)鐘,單片機(jī)使用的是內(nèi)部自帶的 RC時(shí)鐘 HSI(High-speed internal (HSI) RC oscillator),頻率是8MHz。這個(gè)時(shí)鐘在出廠時(shí)會(huì)做校正,全溫度范圍內(nèi)精度在5%左右。如果需要更高精度的時(shí)鐘源,需要外加晶振,或直接把時(shí)鐘輸入至 OSC_IN引腳。
2.下載調(diào)試器
需要用帶SWD調(diào)試接口的下載調(diào)試器,如 ST-LINK/V2,或 JLink。下面是標(biāo)準(zhǔn)的 20引腳 JTAG/SWD 接口。我們只需要用到其中的 5個(gè)引腳:1 VAPP, 接目標(biāo)板上MCU的電源引腳 VDD。它的作用是讓調(diào)試器知道目標(biāo)板電壓是多高。7 SWDIO, SWD 雙向數(shù)據(jù)線。9 SWCLK, SWD 時(shí)鐘線。10 GND, 接目標(biāo)板 GND。15 NRST, 復(fù)位引腳,接MCU的復(fù)位引腳。此引腳可以不接。注1:ST-LINK/V2的4,6,8,10,12,14,16,18,20 都是GND。其它調(diào)試器請(qǐng)參考所用調(diào)試器的文檔。注2:有的調(diào)試器可以從 19腳 對(duì)外供電。如果調(diào)試器沒(méi)有供電能力,或目標(biāo)板功耗較大,需要對(duì)目標(biāo)板獨(dú)立供電。
ST-Link安裝后可以在設(shè)備管理器找到:
3.Keil安裝,官方代碼的下載調(diào)試
從ST官方網(wǎng)站下載 Keil,和例程 STM32CubeF0。安裝過(guò)程從略。
解壓并用 Keil打開下面這個(gè)工程:STM32Cube_FW_F0_V1.11.0ProjectsSTM32F030R8-NucleoExamplesGPIOGPIO_IOToggleMDK-ARMProject.uvprojx
我們可能需要通過(guò) 工程目標(biāo)選項(xiàng)(Options for Target),把調(diào)試器更改為實(shí)際使用的調(diào)試器:
之后 編譯代碼,下載代碼。在左下角可以看到進(jìn)度條:
下載成功后,點(diǎn)擊 調(diào)試代碼 按鈕,進(jìn)入下面這個(gè)界面。可以看到寄存器窗口(Registers),調(diào)用棧窗口(Call Stack + Locals)。左上角有 復(fù)位,全速運(yùn)行,停止,步入,單步,步出,運(yùn)行到某行 等調(diào)試工具按鈕。我們可以通過(guò) View 這個(gè)菜單添加更多的窗口,比如 Watch Window, Memory Window, Disassembly Window 等。
我們點(diǎn)擊 全速運(yùn)行(Run)按鈕,如果用的是 NUCLEO-F030R8 開發(fā)板,可以觀察到板子上一個(gè) LED燈(連至MCU的 PA5引腳)不停地閃爍。在這里我們可以看到下載代碼后程序默認(rèn)停在 main( ) 這個(gè)主程序入口。但是如果我們?cè)囍c(diǎn)一下復(fù)位按鈕(RST),會(huì)發(fā)現(xiàn)程序停在了一段匯編代碼里:
那么究竟 MCU 從一上電到開始控制 LED 燈閃爍,都經(jīng)歷了些什么呢?我們會(huì)在接下來(lái)的文章里進(jìn)一步探討。
審核編輯:劉清
評(píng)論
查看更多