標(biāo)題: 單片機(jī)比賽用的stm32庫(kù)函數(shù)工程源碼 [打印本頁(yè)]

作者: 知丶    時(shí)間: 2020-3-26 17:03
標(biāo)題: 單片機(jī)比賽用的stm32庫(kù)函數(shù)工程源碼
stm32f103zet6庫(kù)函數(shù)工程
支持編譯軟件IAR
大部分外設(shè)提供了直接API函數(shù)


全部源碼資料51hei下載地址:
STM32F103VET6 -new.7z (1.25 MB, 下載次數(shù): 18)



1 文件夾命名規(guī)則
----------------------------------------------------------------------------------------------------
APP        應(yīng)用程序文件夾
BRD        板載設(shè)備驅(qū)動(dòng)與使用文件夾
CPU        微控制器相關(guān)文件夾
CPU-CFF    微控制器內(nèi)存等配置文件夾
CPU-STP    微控制器啟動(dòng)代碼文件夾
ELS        其他代碼文件夾
FUC        通用自定義代碼文件夾,算法,流程等
GEN        通用標(biāo)準(zhǔn)代碼文件夾
PRJ        工程文件夾
PRJ-EXE    IAR工程輸出可執(zhí)行文件文件夾
PRJ-OBJ    工程輸出文件文件夾
PRJ-LST    工程輸出鏈表文件夾
SYS        操作系統(tǒng)文件夾


----------------------------------------------------------------------------------------------------
2 數(shù)據(jù)類型取值范圍
----------------------------------------------------------------------------------------------------
類型    16位系統(tǒng)/字節(jié)  32位系統(tǒng)/字節(jié)  64位系統(tǒng)/字節(jié)
---------------------------------------------------------
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是標(biāo)準(zhǔn)的8 bytes,不受編譯器限制

----------------------------------------------------------------------------------------------------
3 STM32的GPIO工作模式
----------------------------------------------------------------------------------------------------
GPIO_Mode_AIN         = 0x00, 模擬輸入,應(yīng)用ADC模擬輸入,或者低功耗下省電;  
GPIO_Mode_IN_FLOATING = 0x04, 輸入浮空,IO的電平狀態(tài)是不確定的,完全由外部輸入決定;
GPIO_Mode_IPD         = 0x28, 輸入下拉,IO內(nèi)部上拉電阻輸入,懸空時(shí),處于高電平狀態(tài);
GPIO_Mode_IPU         = 0x48, 輸入上拉,IO內(nèi)部下拉電阻輸入,懸空時(shí),處于低電平狀態(tài);   
GPIO_Mode_Out_OD      = 0x14, 開(kāi)漏輸出,IO輸出0--接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。
                              當(dāng)輸出為1時(shí),IO口的狀態(tài)由上拉電阻拉高電平,但由于是開(kāi)漏輸出模式,這樣IO口也就可以由外部電路改變?yōu)榈碗娖交虿蛔儭?br />                               可以讀IO輸入電平變化,實(shí)現(xiàn)C51的IO雙向功能  
GPIO_Mode_Out_PP      = 0x10, 推挽式輸出,IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的。
GPIO_Mode_AF_OD       = 0x1C, 開(kāi)漏復(fù)用 輸出,片內(nèi)外設(shè)功能(I2C的SCL,SDA)  
GPIO_Mode_AF_PP       = 0x18, 推挽式復(fù)用 輸出,片內(nèi)外設(shè)功能(TX1,MOSI,MISO.SCK.SS)

----------------------------------------------------------------------------------------------------
4 STM32的啟動(dòng)模式 BOOT0 和BOOT1
----------------------------------------------------------------------------------------------------
1、BOOT1=x  BOOT0=0  從用戶閃存(FLASH)啟動(dòng),這是正常的工作模式。
2、BOOT1=0  BOOT0=1  從系統(tǒng)存儲(chǔ)器啟動(dòng),這種模式啟動(dòng)的程序功能由廠家設(shè)置。
                     芯片內(nèi)部一塊特定區(qū)域,芯片出廠時(shí),預(yù)置了一段Bootloader,也就是通常ISP程序
                     該區(qū)域出廠后不能修改或擦除,本質(zhì)為1個(gè)ROM區(qū)域
3、BOOT1=1  BOOT0=1  從內(nèi)置SRAM啟動(dòng),這種模式可以用于調(diào)試。

----------------------------------------------------------------------------------------------------
5 STM32的啟動(dòng)文件選擇
----------------------------------------------------------------------------------------------------
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(互聯(lián)型的器件)

互聯(lián)型的器件特點(diǎn):BootLoader有18KB,能通過(guò)USAT1、4、CAN等多種方式進(jìn)行ISP。

----------------------------------------------------------------------------------------------------
6 STM32F103系列命名規(guī)則
----------------------------------------------------------------------------------------------------
第1部分: STM32 - 產(chǎn)品系列名稱
第2部分: F   - Flash產(chǎn)品,沒(méi)有其他選項(xiàng)
第3部分: 103 - 增強(qiáng)型產(chǎn)品,  
          101 - 基本型產(chǎn)品
第4部分: 管腳數(shù)目
          T   - 36引腳
          C   - 48引腳
          R   - 64引腳
          V   -100引腳
          Z   -144引腳
第5部分: 內(nèi)存存儲(chǔ)器容量(Flash)
          6   -  32字節(jié)
          8   -  64字節(jié)
          B   - 128字節(jié)
          C   - 256字節(jié)
          D   - 384字節(jié)
          E   - 512字節(jié)
          G   -1024字節(jié)
第6部分: 封裝信息
          H   - BGA
          T   - LQFP
          Y   - WLCSP64
第7部分: 工作溫度范圍
          6   - 工業(yè)級(jí) -40℃~ +85℃
          7   - 工業(yè)級(jí) -40℃~ +105℃        

----------------------------------------------------------------------------------------------------
7 名詞解釋
----------------------------------------------------------------------------------------------------
RAM (random access memory)        - 隨機(jī)存儲(chǔ)器
SRAM(static random access memory) - 靜態(tài)隨機(jī)存儲(chǔ)器,不需要刷新電路,缺點(diǎn)集成度低,不適合做容量大內(nèi)存
DRAM(dynamic random access memory)- 動(dòng)態(tài)隨機(jī)存儲(chǔ)器,需要隔一段時(shí)間刷新一次數(shù)據(jù)
ROM (read only memory)            - 只讀存儲(chǔ)器,較早年代使用
PROM            - 可編程只讀存儲(chǔ)器,只能寫一次                                      
EPROM           - 通過(guò)紫外線照射來(lái)擦除數(shù)據(jù)
EEPROM          - 電可擦除可編程只讀存儲(chǔ)器,通過(guò)電來(lái)擦除數(shù)據(jù)
Flash           - 非易失性閃存,現(xiàn)在流行使用
NAND FLASH      - 并行接口,集成度高,容量大,成本低,運(yùn)行速度慢   
NOR  FLASH      - 并行接口,集成度低,容量小,成本高,運(yùn)行速度快

----------------------------------------------------------------------------------------------------
8 下載接口說(shuō)明
----------------------------------------------------------------------------------------------------
下載接口,盡量不要使用,需要對(duì)其引腳進(jìn)行功能復(fù)用
PA13 - JTMS
PA14 - JTCK
PA15 - JTDI
PB3  - JTDO
PB4  - JTRST

----------------------------------------------------------------------------------------------------
9 存儲(chǔ)器管理
----------------------------------------------------------------------------------------------------
1.統(tǒng)一編址
  程序存儲(chǔ)器(Flash) + 數(shù)據(jù)存儲(chǔ)器(SRAM)+外設(shè)寄存器 組織在一個(gè)4GB的地址空間
2.小端格式
3.         ┏ 主存儲(chǔ)區(qū)域
  片上FLASH┨       ┏ 系統(tǒng)存儲(chǔ)器:有ST公司燒寫,用戶不可以擦除,即片上ROM
           ┗ 信息塊┨
                    ┗ 選項(xiàng)字節(jié):分為4個(gè)32位字節(jié),只有2個(gè)字節(jié)留給用戶,其余有特定用處
                    
4.STM32芯片將4GB的地址空間 化為8個(gè)512M的塊(Block)
  4GB內(nèi)存 ┲ Block 7  0xE0000000 - 0xFFFFFFFF 內(nèi)核外設(shè)對(duì)應(yīng)地址,例如NVIC寄存器、MPU寄存器以及片上調(diào)試組件
          ┠ Block 6  0xC0000000 - 0xDFFFFFFF 用于擴(kuò)展片外的外設(shè)(一般情況不用)
          ┠ Block 5  0xA0000000 - 0xBFFFFFFF 用于擴(kuò)展片外的外設(shè)(一般情況不用)
          ┠ Block 4  0x80000000 - 0x9FFFFFFF 用于擴(kuò)展外部存儲(chǔ)器RAM(一般情況不用)
          ┠ Block 3  0x60000000 - 0x7FFFFFFF 用于擴(kuò)展外部存儲(chǔ)器RAM(一般情況不用)
          ┠ Block 2  0x40000000 - 0x5FFFFFFF 用于芯片的外設(shè)
          ┠ Block 1  0x20000000 - 0x3FFFFFFF 用于芯片的SRAM         
          ┗ Block 0  0x00000000 - 0x1FFFFFFF 用于芯片的代碼區(qū)
  Block 0 ┲  0x1FFFF800 - 0x1FFFFFFF  Option bytes 選項(xiàng)字節(jié)
          ┠  0x1FFFB000 - 0x1FFFF7FF  system memory 系統(tǒng)存儲(chǔ),即片上ROM
          ┠  0x08040000 - 0x1FFFAFFF  Reserved 保留   
          ┠  0x08000000 - 0x0803FFFF  Flash 主存儲(chǔ)區(qū) 共256KB
          ┠  0x00040000 - 0x07FFFFFF  Reserved 保留   
          ┗  0x00040000 - 0x07FFFFFF  aliased to flash or system memory depending on BOOT pins
         
5.FLash 模塊┲ Flash主存儲(chǔ)區(qū)(Main memory)
            ┠ Flash信息區(qū)(Information block)
            ┗ Flash存儲(chǔ)接口寄存器區(qū)(Flash?memory interface) 0x40022000 - 0x40022023
----------------------------------------------------------------------------------------------------
9 AHB總線外設(shè)
----------------------------------------------------------------------------------------------------
低速
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





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1