STM32开发环境
STM32開發環境
宗旨:技術的學習是有限的,分享的精神是無限的。
一、MDK安裝???
? ? ? ? MDK 是一個集代碼編輯,編譯,鏈接和下載于一體的集成開發環境( KDE )。MDK 這個名字我們可能不熟悉,但說到 KEIL ,學過 51 的朋友就再熟悉不過了。后來 KEIL 被 ARM 公司收購之后就改名為 MDK 了,所以學過 51 的朋友是很快就可以熟悉這個開發環境的。安裝完 MDK 開發環境后,在下載程序的時候會有 40K 的代碼限制,我只需要和諧下即可搞定:)。KEIL_Lic.exe,點擊 KEIL_Lic.exe ,在彈出的界面中的 CID 選項框中填入 MDK 的 CID( MDK 的 CID 在 MDK 開發環境中的菜單欄 File\LicenseManagemant? 中獲取到),在Target 下拉框中選擇 ARM ,然后點擊 Generate 按鈕,復制產生的 CID Code ,然后回到 MDK 開發環境中的菜單欄 File\LicenseManagemant? 中,把剛剛在注冊機復制到的CID Code 粘貼到 New License ID Code(LIC): 框中,然后點擊 Add LIC ,,點擊 close, 大功告成 :)
?
二、用到的一些小工具
1、amo的編程小工具集合:我平時編程和設計時常用的小工具集合。
2、Axialis IconWorkshop(圖標制作軟件)
3、C2B轉換助手 V1.1
4、CH340驅動(USB串口驅動)_XP_WIN7共用
5、GIF2BMP
6、JLINK驅動
7、MDK5
8、PCtoLCD2002完美版——字模軟件
9、winhex
10、SSCOM——串口調試助手
11、網絡調試助手V3.8.exe——網絡調試助手
?
三、硬件資源(野火STM32開發板)
1、CPU—— STM32F103ZET6:32位微控制器,cortex M3架構,512KFlash,64KRAM,72MHZ主頻,3個12位A/D轉換器,1個12位D/A轉換器,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、以太網:ENC28J60(10M) + HR911105A(網絡變壓器)
8、RS232:UART
9、RS485:6LBC184,引出485A與485B端子
10、CAN:收發器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系列
?
四、庫開發—— STM32 3.5版庫
? ? ? ? STM32 庫是由 ST 公司針對 STM32 提供的函數接口,庫是架設在寄存器與用戶驅動層之間的代碼,向下處理與寄存器直接相關的配置,向上為用戶提供配置寄存器的接口。
1、core_cm3.c文件
? ? ? ? CMSIS 標準的核內設備函數層 的 M3 核通用的源文件 core_cm3.c 和頭文件 core_cm3.h,它們的作用是為那些采用 Cortex-M3 核設計 SOC 的芯片商設計的芯片外設提供一個進入 M3 內核的接口。這兩個文件在其它公司的 M3 系列芯片也是相同的。
? ? ? ? core_cm3.c 文件還有一些與編譯器相關條件編譯語句,用于屏蔽不同編譯器的差異。里面包含了一些跟編譯器相關的信息,如: RealView Compiler(RVMDK), ICC Compiler (IAR), GNU Compiler。所有 CM3 芯片的庫都帶有這個文件。
2、system_stm32f10x.c文件
? ? ? ? 設置系統時鐘和總線時鐘, M3 比 51 單片機復雜得多,并不是說我們外部給一個 8M 的晶振, M3 整個系統就以 8M 為時鐘協調整個處理器的工作。我們還要通過 M3 核的核內寄存器來對 8M 的時鐘進行倍頻,分頻,或者使用芯片內部的時鐘。PLL鎖相環。
3、stm32f10x.h文件——底層文件
? ? ? ? 處理器廠商都會將對內存的操作封裝成一個宏,即我們通常說的寄存器,并且把這些實現封裝成一個系統文件。
4、啟動文件——選擇startup_stm32f10x_hd.s。
cl:互聯型產品,stm32f105/107 系列
vl:超值型產品, stm32f100 系列
xl:超高密度(容量) 產品, stm32f101/103 系列
ld:低密度產品, FLASH 小于 64K
md:中等密度產品, FLASH=64 or 128
hd:高密度產品, FLASH 大于 128
啟動文件是一段匯編程序,建立合適的環境。作用:
(1) 初始化堆棧指針 SP;
(2) 初始化程序計數器指針 PC;
(3) 設置堆、棧的大小;
(4) 設置異常向量表的入口地址;
(5). 配置外部 SRAM 作為數據存儲器(這個由用戶配置,一般的開發板可沒
有外部 SRAM);
(6) 設置 C 庫的分支入口__main(最終用來調用 main 函數);
(7) 在 3.5 版的啟動文件還調用了在 system_stm32f10x.c 文件中的SystemIni() 函數配置系統時鐘。
5、inc/src文件夾
? ? ? ? CMSIS 的設備外設函數,基礎外設的驅動文件。—— 庫函數
? ? ? ? ?一個特別的文件misc.c文件:提供了外設對內核中的 NVIC(中斷向量控制器)的訪問函數,在配置中斷時用到。
6、stm32f10x_it.c、 stm32f10x_conf.h文件
? ? ? ? ?stm32f10x_it.c:編寫中斷服務函數,定義了部分中斷接口。
? ? ? ? ?stm32f10x_conf.h:配置使用了什么外設的頭文件,用這個頭文件我們可以很方便地增加或刪除外設驅動函數庫。
7、庫文件間的關系
總結
- 上一篇: cython python3_30倍!使
- 下一篇: [mooc]open course on