stm32f103zet6庫函數工程
支持編譯軟件IAR
大部分外設提供了直接API函數
51hei.png (6.07 KB, 下載次數: 61)
下載附件
2020-3-26 20:25 上傳
全部源碼資料51hei下載地址:
STM32F103VET6 -new.7z
(1.25 MB, 下載次數: 18)
2020-3-26 20:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1 文件夾命名規則
----------------------------------------------------------------------------------------------------
APP 應用程序文件夾
BRD 板載設備驅動與使用文件夾
CPU 微控制器相關文件夾
CPU-CFF 微控制器內存等配置文件夾
CPU-STP 微控制器啟動代碼文件夾
ELS 其他代碼文件夾
FUC 通用自定義代碼文件夾,算法,流程等
GEN 通用標準代碼文件夾
PRJ 工程文件夾
PRJ-EXE IAR工程輸出可執行文件文件夾
PRJ-OBJ 工程輸出文件文件夾
PRJ-LST 工程輸出鏈表文件夾
SYS 操作系統文件夾
----------------------------------------------------------------------------------------------------
2 數據類型取值范圍
----------------------------------------------------------------------------------------------------
類型 16位系統/字節 32位系統/字節 64位系統/字節
---------------------------------------------------------
char 1 1 1
---------------------------------------------------------
char* 2 4 8
---------------------------------------------------------
short 2 2 2
---------------------------------------------------------
int 2 4 4
---------------------------------------------------------
long 4 4 8
---------------------------------------------------------
long long 8 8 8
---------------------------------------------------------
注意:long long是標準的8 bytes,不受編譯器限制
----------------------------------------------------------------------------------------------------
3 STM32的GPIO工作模式
----------------------------------------------------------------------------------------------------
GPIO_Mode_AIN = 0x00, 模擬輸入,應用ADC模擬輸入,或者低功耗下省電;
GPIO_Mode_IN_FLOATING = 0x04, 輸入浮空,IO的電平狀態是不確定的,完全由外部輸入決定;
GPIO_Mode_IPD = 0x28, 輸入下拉,IO內部上拉電阻輸入,懸空時,處于高電平狀態;
GPIO_Mode_IPU = 0x48, 輸入上拉,IO內部下拉電阻輸入,懸空時,處于低電平狀態;
GPIO_Mode_Out_OD = 0x14, 開漏輸出,IO輸出0--接GND,IO輸出1,懸空,需要外接上拉電阻,才能實現輸出高電平。
當輸出為1時,IO口的狀態由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO口也就可以由外部電路改變為低電平或不變。
可以讀IO輸入電平變化,實現C51的IO雙向功能
GPIO_Mode_Out_PP = 0x10, 推挽式輸出,IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的。
GPIO_Mode_AF_OD = 0x1C, 開漏復用 輸出,片內外設功能(I2C的SCL,SDA)
GPIO_Mode_AF_PP = 0x18, 推挽式復用 輸出,片內外設功能(TX1,MOSI,MISO.SCK.SS)
----------------------------------------------------------------------------------------------------
4 STM32的啟動模式 BOOT0 和BOOT1
----------------------------------------------------------------------------------------------------
1、BOOT1=x BOOT0=0 從用戶閃存(FLASH)啟動,這是正常的工作模式。
2、BOOT1=0 BOOT0=1 從系統存儲器啟動,這種模式啟動的程序功能由廠家設置。
芯片內部一塊特定區域,芯片出廠時,預置了一段Bootloader,也就是通常ISP程序
該區域出廠后不能修改或擦除,本質為1個ROM區域
3、BOOT1=1 BOOT0=1 從內置SRAM啟動,這種模式可以用于調試。
----------------------------------------------------------------------------------------------------
5 STM32的啟動文件選擇
----------------------------------------------------------------------------------------------------
STM32F10X_LD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范圍16 ~ 32 Kbytes
STM32F10X_LD_VL —— STM32F100xx FLASH范圍16 ~ 32 Kbytes
STM32F10X_MD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范圍64 ~ 128Kbytes
STM32F10X_MD_VL —— STM32F100xx FLASH范圍64 ~ 128Kbytes
STM32F10X_HD —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范圍256~ 512Kbytes
STM32F10X_HD_VL —— STM32F100xx FLASH范圍256~ 512Kbytes
STM32F10X_XL —— STM32F101xx、STM32F102xx、STM32F103xx FLASH范圍512~1024Kbytes
STM32F10X_CL —— STM32F105xx、STM32F107xx(互聯型的器件)
互聯型的器件特點:BootLoader有18KB,能通過USAT1、4、CAN等多種方式進行ISP。
----------------------------------------------------------------------------------------------------
6 STM32F103系列命名規則
----------------------------------------------------------------------------------------------------
第1部分: STM32 - 產品系列名稱
第2部分: F - Flash產品,沒有其他選項
第3部分: 103 - 增強型產品,
101 - 基本型產品
第4部分: 管腳數目
T - 36引腳
C - 48引腳
R - 64引腳
V -100引腳
Z -144引腳
第5部分: 內存存儲器容量(Flash)
6 - 32字節
8 - 64字節
B - 128字節
C - 256字節
D - 384字節
E - 512字節
G -1024字節
第6部分: 封裝信息
H - BGA
T - LQFP
Y - WLCSP64
第7部分: 工作溫度范圍
6 - 工業級 -40℃~ +85℃
7 - 工業級 -40℃~ +105℃
----------------------------------------------------------------------------------------------------
7 名詞解釋
----------------------------------------------------------------------------------------------------
RAM (random access memory) - 隨機存儲器
SRAM(static random access memory) - 靜態隨機存儲器,不需要刷新電路,缺點集成度低,不適合做容量大內存
DRAM(dynamic random access memory)- 動態隨機存儲器,需要隔一段時間刷新一次數據
ROM (read only memory) - 只讀存儲器,較早年代使用
PROM - 可編程只讀存儲器,只能寫一次
EPROM - 通過紫外線照射來擦除數據
EEPROM - 電可擦除可編程只讀存儲器,通過電來擦除數據
Flash - 非易失性閃存,現在流行使用
NAND FLASH - 并行接口,集成度高,容量大,成本低,運行速度慢
NOR FLASH - 并行接口,集成度低,容量小,成本高,運行速度快
----------------------------------------------------------------------------------------------------
8 下載接口說明
----------------------------------------------------------------------------------------------------
下載接口,盡量不要使用,需要對其引腳進行功能復用
PA13 - JTMS
PA14 - JTCK
PA15 - JTDI
PB3 - JTDO
PB4 - JTRST
----------------------------------------------------------------------------------------------------
9 存儲器管理
----------------------------------------------------------------------------------------------------
1.統一編址
程序存儲器(Flash) + 數據存儲器(SRAM)+外設寄存器 組織在一個4GB的地址空間
2.小端格式
3. ┏ 主存儲區域
片上FLASH┨ ┏ 系統存儲器:有ST公司燒寫,用戶不可以擦除,即片上ROM
┗ 信息塊┨
┗ 選項字節:分為4個32位字節,只有2個字節留給用戶,其余有特定用處
4.STM32芯片將4GB的地址空間 化為8個512M的塊(Block)
4GB內存 ┲ Block 7 0xE0000000 - 0xFFFFFFFF 內核外設對應地址,例如NVIC寄存器、MPU寄存器以及片上調試組件
┠ Block 6 0xC0000000 - 0xDFFFFFFF 用于擴展片外的外設(一般情況不用)
┠ Block 5 0xA0000000 - 0xBFFFFFFF 用于擴展片外的外設(一般情況不用)
┠ Block 4 0x80000000 - 0x9FFFFFFF 用于擴展外部存儲器RAM(一般情況不用)
┠ Block 3 0x60000000 - 0x7FFFFFFF 用于擴展外部存儲器RAM(一般情況不用)
┠ Block 2 0x40000000 - 0x5FFFFFFF 用于芯片的外設
┠ Block 1 0x20000000 - 0x3FFFFFFF 用于芯片的SRAM
┗ Block 0 0x00000000 - 0x1FFFFFFF 用于芯片的代碼區
Block 0 ┲ 0x1FFFF800 - 0x1FFFFFFF Option bytes 選項字節
┠ 0x1FFFB000 - 0x1FFFF7FF system memory 系統存儲,即片上ROM
┠ 0x08040000 - 0x1FFFAFFF Reserved 保留
┠ 0x08000000 - 0x0803FFFF Flash 主存儲區 共256KB
┠ 0x00040000 - 0x07FFFFFF Reserved 保留
┗ 0x00040000 - 0x07FFFFFF aliased to flash or system memory depending on BOOT pins
5.FLash 模塊┲ Flash主存儲區(Main memory)
┠ Flash信息區(Information block)
┗ Flash存儲接口寄存器區(Flash?memory interface) 0x40022000 - 0x40022023
----------------------------------------------------------------------------------------------------
9 AHB總線外設
----------------------------------------------------------------------------------------------------
低速
APB1 ┲ DAC
┠ PWR
┠ BKP
┠ CAN
┠ USB
┠ I2C1 I2C2
┠ USART2 USART3
┠ UART4 UART5
┠ SPI2/I2S SPI3/I2S
┠ IWDG
┠ WWDG
┠ RTC
┗ TIM2 TIM3 TIM4 TIM5 TIM6 TIM7
高速
APB2 ┲ ADC1 ADC2 ADC3
┠ USART1
┠ SPI1
┠ TIM1 TIM8
┠ GPIOA GPIOB GPIOC GPIOD GPIOE
┠ EXTI
┗ AFIO
|