STM32開發(fā)環(huán)境
一、MDK安裝???
? ? ? ? MDK 是一個集代碼編輯,編譯,鏈接和下載于一體的集成開發(fā)環(huán)境( KDE )。MDK 這個名字我們可能不熟悉,但說到 KEIL ,學(xué)過 51 的朋友就再熟悉不過了。后來 KEIL 被 ARM 公司收購之后就改名為 MDK 了,所以學(xué)過 51 的朋友是很快就可以熟悉這個開發(fā)環(huán)境的。安裝完 MDK 開發(fā)環(huán)境后,在下載程序的時候會有 40K 的代碼限制,我只需要和諧下即可搞定:)。KEIL_Lic.exe,點擊 KEIL_Lic.exe ,在彈出的界面中的 CID 選項框中填入 MDK 的 CID( MDK 的 CID 在 MDK 開發(fā)環(huán)境中的菜單欄 FileLicenseManagemant? 中獲取到),在Target 下拉框中選擇 ARM ,然后點擊 Generate 按鈕,復(fù)制產(chǎn)生的 CID Code ,然后回到 MDK 開發(fā)環(huán)境中的菜單欄 FileLicenseManagemant? 中,把剛剛在注冊機復(fù)制到的CID Code 粘貼到 New License ID Code(LIC): 框中,然后點擊 Add LIC ,,點擊 close, 大功告成 :)
?
二、用到的一些小工具
1、amo的編程小工具集合:我平時編程和設(shè)計時常用的小工具集合。
2、Axialis IconWorkshop(圖標(biāo)制作軟件)
3、C2B轉(zhuǎn)換助手 V1.1
4、CH340驅(qū)動(USB串口驅(qū)動)_XP_WIN7共用
5、GIF2BMP
6、JLINK驅(qū)動
7、MDK5
8、PCtoLCD2002完美版——字模軟件
9、winhex
10、SSCOM——串口調(diào)試助手
11、網(wǎng)絡(luò)調(diào)試助手V3.8.exe——網(wǎng)絡(luò)調(diào)試助手
?
三、硬件資源(野火STM32開發(fā)板)
1、CPU—— STM32F103ZET6:32位微控制器,cortex M3架構(gòu),512KFlash,64KRAM,72MHZ主頻,3個12位A/D轉(zhuǎn)換器,1個12位D/A轉(zhuǎn)換器,12通道DMA(支持定時器/ADC/DAC/SDIO/I2S/SPI/I2C/UART),144引腳,112個快速IO口,11個定時器,2個I2C,5個UART,3個SPI,CAN接口,SDIO接口,USB
2、JTAG:20pinJTAG下載口
3、RTC:帶點池的RTC電池座
4、I2C? EEPROM: —— AT24C02
5、SPI:2M FLASH W25X16(兼容W25Q16)
6、SDIO:TF卡接口
7、以太網(wǎng):ENC28J60(10M) + HR911105A(網(wǎng)絡(luò)變壓器)
8、RS232:UART
9、RS485:6LBC184,引出485A與485B端子
10、CAN:收發(fā)器TJA1050,引出CANH和CANL
11、AD/DA:
12、PWM:
13:液晶接口:
14、攝像頭接口:OV7725模塊
15、三軸加速接口:MMA7455模塊
16、無線接口:2.4GNRF24L01 + 模塊
17、音頻接口:MP3模塊
18、zigbee接口:CC2530
19、WIFI接口:Mxchip EMW系列
?
四、庫開發(fā)—— STM32 3.5版庫
? ? ? ? STM32 庫是由 ST 公司針對 STM32 提供的函數(shù)接口,庫是架設(shè)在寄存器與用戶驅(qū)動層之間的代碼,向下處理與寄存器直接相關(guān)的配置,向上為用戶提供配置寄存器的接口。
1、core_cm3.c文件
? ? ? ? CMSIS 標(biāo)準(zhǔn)的核內(nèi)設(shè)備函數(shù)層 的 M3 核通用的源文件 core_cm3.c 和頭文件 core_cm3.h,它們的作用是為那些采用 Cortex-M3 核設(shè)計 SOC 的芯片商設(shè)計的芯片外設(shè)提供一個進入 M3 內(nèi)核的接口。這兩個文件在其它公司的 M3 系列芯片也是相同的。
? ? ? ? core_cm3.c 文件還有一些與編譯器相關(guān)條件編譯語句,用于屏蔽不同編譯器的差異。里面包含了一些跟編譯器相關(guān)的信息,如: RealView Compiler(RVMDK), ICC Compiler (IAR), GNU Compiler。所有 CM3 芯片的庫都帶有這個文件。
2、system_stm32f10x.c文件
? ? ? ? 設(shè)置系統(tǒng)時鐘和總線時鐘, M3 比 51 單片機復(fù)雜得多,并不是說我們外部給一個 8M 的晶振, M3 整個系統(tǒng)就以 8M 為時鐘協(xié)調(diào)整個處理器的工作。我們還要通過 M3 核的核內(nèi)寄存器來對 8M 的時鐘進行倍頻,分頻,或者使用芯片內(nèi)部的時鐘。PLL鎖相環(huán)。
3、stm32f10x.h文件——底層文件
? ? ? ? 處理器廠商都會將對內(nèi)存的操作封裝成一個宏,即我們通常說的寄存器,并且把這些實現(xiàn)封裝成一個系統(tǒng)文件。
4、啟動文件——選擇startup_stm32f10x_hd.s。
cl:互聯(lián)型產(chǎn)品,stm32f105/107 系列
vl:超值型產(chǎn)品, stm32f100 系列
xl:超高密度(容量) 產(chǎn)品, stm32f101/103 系列
ld:低密度產(chǎn)品, FLASH 小于 64K
md:中等密度產(chǎn)品, FLASH=64 or 128
hd:高密度產(chǎn)品, FLASH 大于 128
啟動文件是一段匯編程序,建立合適的環(huán)境。作用:
(1) 初始化堆棧指針 SP;
(2) 初始化程序計數(shù)器指針 PC;
(3) 設(shè)置堆、棧的大?。?/p>
(4) 設(shè)置異常向量表的入口地址;
(5). 配置外部 SRAM 作為數(shù)據(jù)存儲器(這個由用戶配置,一般的開發(fā)板可沒
有外部 SRAM);
(6) 設(shè)置 C 庫的分支入口__main(最終用來調(diào)用 main 函數(shù));
(7) 在 3.5 版的啟動文件還調(diào)用了在 system_stm32f10x.c 文件中的SystemIni() 函數(shù)配置系統(tǒng)時鐘。
5、inc/src文件夾
? ? ? ? CMSIS 的設(shè)備外設(shè)函數(shù),基礎(chǔ)外設(shè)的驅(qū)動文件?!?庫函數(shù)
? ? ? ? ?一個特別的文件misc.c文件:提供了外設(shè)對內(nèi)核中的 NVIC(中斷向量控制器)的訪問函數(shù),在配置中斷時用到。
6、stm32f10x_it.c、 stm32f10x_conf.h文件
? ? ? ? ?stm32f10x_it.c:編寫中斷服務(wù)函數(shù),定義了部分中斷接口。
? ? ? ? ?stm32f10x_conf.h:配置使用了什么外設(shè)的頭文件,用這個頭文件我們可以很方便地增加或刪除外設(shè)驅(qū)動函數(shù)庫。
7、庫文件間的關(guān)系