STM32開(kāi)發(fā)環(huán)境(工具)之Keil MDK 介紹
Include Paths:指定頭文件的查找路徑,可以添加多個(gè)。
這里我們所有的選擇保持默認選擇就可以了。
3. Debug標簽頁(yè)的設置

左邊是對應uVision3的模擬環(huán)境,右邊是針對仿真器,這里選擇右邊的ULINK Cortex Debugger仿真器為例進(jìn)行說(shuō)明。
如果已經(jīng)將ULINK仿真器連接到你的電腦,點(diǎn)擊“Settings”你將進(jìn)入ARM Target Driver Setup 界面。

ULINK - JTAG/SWD Adapter:
Serial No:列出了當前連接到主機的所有ULINK適配器的串號,你可以通過(guò)列表選擇要使用的ULINK適配器。
ULINK Version,Device Family以及Firmware Version分別列出了當前選擇的ULINK適配器的版本,設備家族和固件版本。
SWJ,Port:根據和開(kāi)發(fā)板接口的類(lèi)型選擇端口,有JTAG和SW兩種,勾選SWJ表示支持兩種方式。
Max Clock:指定和開(kāi)發(fā)板的最高通信時(shí)鐘。
JTAG Device Chain:顯示當前通過(guò)適配器連接上的開(kāi)發(fā)板。
Automatic Detection:自動(dòng)監測,選擇系統將自動(dòng)檢測連接上的開(kāi)發(fā)板,建議使用。
Manual Configuration:手動(dòng)配置,通過(guò)手動(dòng)設置ID CODE,Device Name和IR len等屬性來(lái)查找設備。
Debug:
Cache Options:
Cache Code:通知調試器已經(jīng)下載的程序代碼不會(huì )改變,選中的話(huà)uVision將不會(huì )從目標系統讀取程序代碼。
Cache Memory:決定調試程序期間程序停止運行的時(shí)候,是否更新存儲器顯示。
Download Options:
Verify Code Download:比較目標存儲器和調試器上的應用程序的內容。
Download to Flash:將代碼下載到所有的存儲器區域,如果不選中,調試器不會(huì )把代碼下載到Flash Download Setup中制定的存儲器地址范圍。
Misc Options:
Use Reset at Startup:選中的時(shí)候,調試器在開(kāi)始調試的時(shí)候會(huì )發(fā)起一次CPU復位?!?br />Load Application at Startup:將Output標簽中指定的可執行文件導入到調試器的起始地址。
Run to Main:開(kāi)始調試時(shí)執行到Main函數入口暫停執行。
Initialization File:指定一個(gè)包含一組調試命令的文件,這組命令是調試器開(kāi)始工作或者調試函數在調試期間要使用的。
Restore Debug Session Settings:使用上一次調試過(guò)程對Breakpoints,Watchpoints,Memory Display和Toolbox(如果這些項被選中的話(huà))。
Driver DLL – Parameter:由Device Database設置的目標驅動(dòng)DLL,不要修改。
Dialog DLL – Parameter:由Device Database設置的對話(huà)框DLL,不要修改。
這里我們修改了兩個(gè)地方,選中了Use ULINK和Run to Main,對ULINK的設置進(jìn)行了一些調整,具體的設置圖5.11所示。
4. Utilities標簽頁(yè)的設置

Configure Flash Menu Command
Use Target Driver for Flash Programming:列表選擇和調試接口一致的驅動(dòng)。Init File的設置也和前面調試設置一致。點(diǎn)擊Settings將進(jìn)入Flash Download Setup界面。

Download Function:定義了Flash燒寫(xiě)的時(shí)候進(jìn)行的操作。
Erase Full Chip:前面三項要選一,燒寫(xiě)程序之前擦除整個(gè)Flash存儲器。
Erase Sectors:燒寫(xiě)程序之前擦除程序要使用的扇區。
Do not Erase:不進(jìn)行擦除操作
Program:使用當前uVision工程的程序燒寫(xiě)ROM。
Verify:驗證Flash ROM的內容和當前工程中的程序一致。
Reset and Run:在燒寫(xiě)和驗證完成之后復位開(kāi)發(fā)板并且運行程序。
RAM for Algorithm:指定用于燒寫(xiě)程序的RAM區域,通常是微控制器上的一段片上空間。
Start:起始地址。
Size:大小。
可以通過(guò)點(diǎn)擊Add添加,點(diǎn)擊Add你將看到如下的選擇列表,可以根據你選用的芯片選擇合適的,也可以自己手動(dòng)添加。

Use External Tool for Flash Programming:使用第三方的工具進(jìn)行Flash下載。
Command:要使用的Flash燒寫(xiě)工具的命令文件(通常是一個(gè).exe文件)。
Arguments:傳遞給Flash燒寫(xiě)工具的參數。
Run Independent:當選中的時(shí)候,uVision不等待Flash燒寫(xiě)完成。不選中的時(shí)候uVision要等待Flash燒寫(xiě)完成并且在輸出窗口顯示燒寫(xiě)結果。
在HelloWorld里面修改了Flash Download Setup,具體的設置如上圖所示。到此工程設置就結束了。
5.1.2.3 打開(kāi)工程
通過(guò)菜單“Project”->“Open Project”來(lái)打開(kāi)一個(gè)現有工程,這時(shí)將彈出一個(gè)打開(kāi)文件對話(huà)框讓我們選擇要打開(kāi)的工程文件。
選擇你要打開(kāi)的工程的路徑,然后點(diǎn)擊“Open”打開(kāi)工程。我們還可以和打開(kāi)其他文件一樣,找到一個(gè)后綴為“uv2”的uVision3工程文件,直接雙擊,Windows會(huì )自動(dòng)調用uVision3打開(kāi)這個(gè)文件,前提是你電腦已經(jīng)安裝了uVision3并且和“uv2”文件建立了關(guān)聯(lián)。
5.1.3 編寫(xiě)源程序
選擇菜單“File”->“New”或者點(diǎn)擊工具欄的新建文件按鈕,即可在項目窗口的右側打開(kāi)一個(gè)新的文本編輯窗口,在該窗口可以輸入程序代碼。
需要說(shuō)明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫(xiě),可以使用任意文本編輯器編寫(xiě),而且Keil的編輯器對漢字的支持不好,建議使用UltraEdit之類(lèi)的編輯軟件進(jìn)行源程序的輸入。
每一個(gè)程序至少有一個(gè)原型為int main(void)的主函數,這是程序的入口地址,程序將從這里開(kāi)始運行。此外,我們還需要對開(kāi)發(fā)板做一些時(shí)鐘和中斷方面的初始化工作,這些工作將在函數RCC_Configuration和NVIC_Configuration中完成。源文件的代碼清單如下所示。
- #include"stm32f10x_lib.h"
- GPIO_InitTypeDefGPIO_InitStructure;
- voidDelay(vu32nCount);
- /*******************************************************************************FunctionName:main
- *Description:主程序
- *Input:None
- *Output:None
- *Return:None
- ******************************************************************************/
- intmain(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_Init(GPIOB,&GPIO_InitStructure);
- while(1)
- {
- GPIO_WriteBit(GPIOB,GPIO_Pin_9,
- (BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_9)));
- Delay(1000000);
- }
- }
- voidDelay(vu32nCount)
- {
- for(;nCount!=0;nCount--);
- }
代碼編輯完成之后,我們可以保存源文件,選擇菜單“File”->“Save”或者點(diǎn)擊工具欄的保存文件按鈕,可以用來(lái)保存源文件。
這時(shí)會(huì )出現一個(gè)保存文件的文件對話(huà)框,選擇你要保存的路徑,輸入文件名HelloWorld.c。注意一定要輸入擴展名,如果是c程序文件擴展名為.c,如果是匯編文件擴展名為.s,習慣.asm的也可以存儲為.asm。注解說(shuō)明文件可以保存為.txt的擴展名。
源文件編輯完成之后我們還需要將源文件加入到工程中,工程建好之后,在工程窗口的文件頁(yè)中,將會(huì )出現“Target 1”,前面有個(gè)“+”號,點(diǎn)擊“+”號展開(kāi),可以看到下一層的“Source Group 1”,我們需要向這個(gè)里面加入源文件,點(diǎn)擊“Source Group 1”使其反白顯示,然后,點(diǎn)擊鼠標右鍵,出現一個(gè)下拉菜單,如下圖如示。

選中其中的“Add file to Group ‘Source Group 1’”,出現一個(gè)對話(huà)框,要求尋找源文件,如下圖所示。

注意,該對話(huà)框下面的“文件類(lèi)型”默認為C source file(*.c),我們可以通過(guò)調整這個(gè)來(lái)選擇過(guò)濾我們想要格式的文件,從而幫助我們快速查找文件。如果是匯編文件,就選擇“asm source file”;如果是目標文件,選擇“Object file”;如果是庫文件,選擇“Library file”。最后點(diǎn)擊“Add”,也可以雙擊要添加的文件進(jìn)行加入。注意:點(diǎn)擊“Add”之后,窗口不會(huì )消失,如果要添加多個(gè)文件,可以不斷添加,添加完畢此時(shí)再點(diǎn)擊“Close”關(guān)閉該窗口。初學(xué)者時(shí)常誤認為操作沒(méi)有成功而再次雙擊同一文件或者再次點(diǎn)擊“Add”,這時(shí)會(huì )出現如下的對話(huà)框。

在這里我們把剛新建的HelloWorld.c添加進(jìn)去,文件添加進(jìn)去之后,我們點(diǎn)擊“Source Group 1”前面的“+”號,就會(huì )發(fā)現我們剛剛添加的文件HelloWrold.c已在其中了,雙擊文件名,即在代碼區打開(kāi)該源程序文件。
除了添加文件,我們還可以添加新的Group,操作和添加文件類(lèi)似,出現下拉菜單之后我們選擇“New Group”,這時(shí)就會(huì )在工程窗口看到新加的Group。對Group和添加文件的操作我們還可以通過(guò)點(diǎn)擊工具欄上的彩色品字按鈕進(jìn)入“Components,Environment and Books”窗口,如下圖所示。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論