AN2953
STM32F10xxx V2.0.3STM32F10xxx V3.0.0
STM32F10xxx V2.0.3(FWLib) STM32F10xxx V3.0.0 2 2
(FWLib) STM32F10xxx V2.0.3
(StdPeriph_Lib) STM32F10xxx V3.0.0
16K 32K STM32F101xx STM32F102xx STM32F103xx
64K 128K STM32F101xx STM32F102xx STM32F103xx
256K 512K STM32F101xx STM32F103xx
本译文的英文版下载地址为
http://www.st.com/stonline/products/literature/an/15531.pdf STM32F10xxx V3.0.0
http://www.st.com/stonline/products/support/micro/files/stm32f10x_stdperiph_lib_v3.0.0.zip
http://www.st.com/stonline/products/support/micro/files/an2953.zip
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
1STM32F10xxx (FWLib)V2.0.3 (StdPeriph_Lib)V3.0.0 ····· 3
1.1ARM® Cortex-M3TM (CMSIS) ···························································· 3
1.1.1CMSIS ·························································································································· 3
1.1.2CMSIS ·························································································································· 4
1.1.3STM32 V2.0.3 CMSISV1.10 ············································································ 5
1.2STM32F10xxx Doxygen ················································································· 5
1.3STM32F10xxx ···························································································· 6
1.4STM32F10xxx ··································································· 6
1.5STM32F10xxx (FWLib)V2.0.3 ··················································································· 7
2STM32F10xxx ·································································································· 8
3STM32F10xxx ····················································································· 11
3.1STM32F10xxx ································································································· 11
3.1.1······················································································································11
3.1.2······················································································································11
3.1.3······························································································· 12
3.1.4···························································································································· 12
3.2·············································································································· 12
3.2.1IO ·································································································· 12
3.2.2························································································································ 13
3.3···························································································································· 14
3.3.1NVIC·································································································································· 14
3.3.2SysTick······························································································································ 15
3.3.3CAN··································································································································· 16
3.4STM32F10xxx ·························································································· 16
4···································································································· 19
4.1····················································································································· 19
4.2·········································································································· 19
A (FWLib)V2.0.3 (StdPeriph_Lib)V3.0.0 ·············· 21
2/22
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
1 STM32F10xxx (FWLib)V2.0.3(StdPeriph_Lib)V3.0.0
STM32F10xxx (FWLib)V2.0.3 STM32F10xxx
部标准外设的驱动和一系列示例程序。
STM32F10xxx (StdPeriph_Lib)V3.0.0 (FWLib)V2.0.3
●CortexTM (CMSIS)
●Doxygen
●STM32 API( )
(StdPeriph_Lib)V3.0.0 STM32F10xxx CANSTM32F10xxx ( CAN)
STM32F10xxx V3.0.0
●(project)
● 下文详细描述了标准外设库(StdPeriph_Lib)
1.1ARM® Cortex-M3TM (CMSIS)
CMSIS Cortex-M0/Cortex-M1 Cortex-M3CMSIS Cortex-M (Cortex-Mx) CMSIS ARM www.onarm.com
1.1.1 CMSIS
CMSIS ARM
● 同时也为RTOS( )
●( )
CMSIS Cortex-Mx
●RTOS
●(TCP/IP )
3/22
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
1.1.2 CMSIS
1 CMSIS1 CMSIS
CMSIS-
●Cortex-M3 (core_cm3.h + core_cm3.c)
─Cortex-M3 NVIC SysTick
─Cortex-M3 CPU
●(device.h)
─( )
─( )
─( )
●(system_device.c)
─SystemInit
─Sysem_ExtMemCtl startup_stm32f10x_xx.s /.c main
─SystemFrequncy
─( )
+
●( C)(startup_device.s)
─( )
─(Weak) ( )
weak
__weak
4/22
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
1.1.3 STM32 V2.0.3 CMSISV1.10
CMSIS STM32F10xxx (FWLib)
●C <stdint.h>
●Cortex-M3 STM32 IRQ
─_Handler _IRQHandler
─(Weak) /
─_IRQn “#define”
●”startup_stm32f10x_xx.s/.c” xx hd md ld
●NVIC SysTick
STM32F10xxx misc.h/.c
●STM32F10xxx V2.0.3 ( 1)
1 |
STM32F10xxx V2.0.3 CMSIS (1) |
|
|
|
||||
|
STM32 |
CMSIS |
|
STM32 |
|
CMSIS |
||
|
|
|
|
|
|
|
|
|
- |
|
__NOP |
|
__RESETPRIMASK |
__enable_irq |
|||
__WFI |
|
__WFI |
|
__SETPRIMASK |
__disable_irq |
|||
__WFE |
__WFE |
|
__READ_PRIMASK |
|
|
__get_PRIMASK |
|
|
__SEV |
|
__SEV |
|
|
|
__set_PRIMASK(val) |
|
|
|
|
|
|
|
|
|||
__ISB |
|
__ISB |
|
__RESETFAULTMASK |
|
|
__enable_fault_irq |
|
__DSB |
|
__DSB |
|
__SETFAULTMASK |
|
|
__disable_fault_irq |
|
__DMB |
__DMB |
|
__READ_FAULTMASK |
|
|
__get_FAULTMASK |
|
|
__SVC |
|
- |
|
|
|
__set_FAULTMASK(val) |
|
|
|
|
|
|
|
|
|||
__MRS_CONTROL |
__get_CONTROL |
|
__BASEPRICONFIG |
|
|
__set_BASEPRI |
|
|
__MSR_CONTROL |
__set_CONTROL |
|
__GetBASEPRI |
|
|
__get_BASEPRI |
|
|
__MRS_PSP |
__get_PSP |
|
__REV_HalfWord |
__REV16 |
||||
__MSR_PSP |
__set_PSP |
|
__REV_Word |
|
|
__REV |
|
|
__MRS_MSP |
__get_MSP |
|
- |
|
|
__REVSH |
|
|
__MSR_MSP |
__set_MSP |
|
- |
|
|
__RBIT |
|
1. (FWLib)
1.2STM32F10xxx Doxygen
STM32F10xxx doxygen
ST (www.st.com/mcu) STM32F10xxx
UM0427 Doxygen CHM CHM STM32F10xxx
Doxygen
/**
*@brief Reads the specified input port pin.
*@param GPIOx: where x can be (A..G) to select the GPIO peripheral.
*@param GPIO_Pin: specifies the port bit to read.
*This parameter can be GPIO_Pin_x where x can be (0..15).
5/22
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
* @retval : The input port pin value. */
●@brief
●@param
●@retval
”stm32f10x_stdperiph_lib_um.chm”
1.3STM32F10xxx
ST STM32F10xxx CMSIS2 (StdPeriph_Lib)
●API( )”stm32f10x_conf.h” ”stm32f10x_ppp.h/.c”
(StdPeriph_Lib) STM32F10xxxSTM32 ”stm32f10x.h” define(StdPeriph_Lib) define
●STM32F10x_LD STM32
●STM32F10x_MD STM32
●STM32F10x_HD STM32define
●”stm3210f.h” IRQ
●(HSE)
●STM32
define STM32
1.4STM32F10xxx
2 STM32F10xxx
6/22
2009 4 AN2953 1
ST
STM32F10xxx V2.0.3 STM32F10xxx V3.0.0
2 STM32F10xxx
1.5STM32F10xxx (FWLib)V2.0.3
ST STM32TM (http://www.st.com/mcu/familiesdocs-110.html) STM32F10xxx
(FWLib)V2.0.3”STM32F10x_FW_Archive.zip ” zip ”Firmware”http://www.st.com/mcu/familiesdocs-110.html#Firmware
zip ST ” STM32F10xFWLib_V2.0.3_Patch1.zip”V2.0.3
7/22
2009 4 AN2953 1
ST