STM32启动文件的中文解释.docx
- 文档编号:4058734
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:29
- 大小:29.10KB
STM32启动文件的中文解释.docx
《STM32启动文件的中文解释.docx》由会员分享,可在线阅读,更多相关《STM32启动文件的中文解释.docx(29页珍藏版)》请在冰豆网上搜索。
STM32启动文件的中文解释
**这里是STM32比较重要的头文件我愛你的吻123原創講解QQ:
1746430162
******************************************************************************
*@filestm32f10x.hST标准的头文件
*@authorMCDApplicationTeam微控制器开发小组。
*@versionV3.5.0版本
*@date11-March-20112011年3月11
*@briefCMSISCortex-M3DevicePeripheralAccessLayerHeaderFile.(CMSIS:
CortexMicrocontrollerSoftwareInterfaceStandard)是Cortex-M处理器系列的与供应商无关的硬件抽象层。
*Thisfilecontainsalltheperipheralregister'sdefinitions,bits
*definitionsandmemorymappingforSTM32F10xConnectivityline,
*Highdensity,Highdensityvalueline,Mediumdensity,
*MediumdensityValueline,Lowdensity,LowdensityValueline
*andXL-densitydevices.
*这个文件包含了芯片STM32F10X(接口增强型)内部的寄存器定义,位定义,内存地址变换定义,还有一些相应的高密度,低密度产品线的设备。
*Thefileistheuniqueincludefilethattheapplicationprogrammer
*isusingintheCsourcecode,usuallyinmain.c.Thisfilecontains:
*-Configurationsectionthatallowstoselect:
*-Thedeviceusedinthetargetapplication
*-Touseornottheperipheralsdriversinapplicationcode(i.e.
*codewillbebasedondirectaccesstoperipheralsregisters
*ratherthandriversAPI),thisoptioniscontrolledby
*"#defineUSE_STDPERIPH_DRIVER"
*-Tochangefewapplication-specificparameterssuchastheHSE
*crystalfrequency
*-Datastructuresandtheaddressmappingforallperipherals
*-Peripheral'sregistersdeclarationsandbitsdefinition
*-Macrostoaccessperipheralregistershardware
*这个文件在应用程序中是至关重要的头文件,它是用C代码编写而成。
通常包括在MAIN主程序中。
它包括:
1设备中使用的目标应用程序。
2决定是否使用外部设备的代码(例如使用基于寄存器的代码,而不是我们所熟悉的API应用程序接口代码)。
这一设备可以通过设置"#defineUSE_STDPERIPH_DRIVER"来实现。
3通过这一文件可以改变诸如外部设备的频率参数。
4可以了解程序的数据结构以及外设的地址映射。
5外设的寄存器声明和位定义可以在这个文件里面了解到。
******************************************************************************
*@attention
*
*THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS
*WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE
*TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY
*DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING
*FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE
*CODINGINFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.
*注意:
这一文件代码供应给用户,旨在帮助用户提升效率节约时间。
ST将不会提供任何对于用户自己代码的解释和帮助。
也不会解决其在代码中的任何BUG。
*
©COPYRIGHT2011STMicroelectronics
******************************************************************************
*/
/**@addtogroupCMSIS
*@{
*/这个不需要关心,只是说明这个文件的作者,公司产品等等,你贴出来的估计是小小的广而告之,这也是程序员的一点小小的特权嘛
/**@addtogroupstm32f10x
*@{
*/
#ifndef__STM32F10x_H//如果没有定义__STM32F10x_H,则定义__STM32F10x_H
#define__STM32F10x_H
#ifdef__cplusplus//
extern"C"{
#endif
这里是一种条件编译。
extern"C"指令非常有用,因为C和C++的近亲关系。
注意:
extern"C"指令中的C,表示的一种编译和连接规约,而不是一种语言。
C表示符合C语言的编译和连接规约的任何语言,如Fortran、assembler等。
还有要说明的是,extern"C"指令仅指定编译和连接规约,但不影响语义。
例如在函数声明中,指定了extern"C",仍然要遵守C++的类型检测、参数转换规则。
/**@addtogroupLibrary_configuration_section
*@{
*/
/*UncommentthelinebelowaccordingtothetargetSTM32deviceusedinyour
application
*/
#if!
defined(STM32F10X_LD)&&!
defined(STM32F10X_LD_VL)&&!
defined(STM32F10X_MD)&&!
defined(STM32F10X_MD_VL)&&!
defined(STM32F10X_HD)&&!
defined(STM32F10X_HD_VL)&&!
defined(STM32F10X_XL)&&!
defined(STM32F10X_CL)
/*#defineSTM32F10X_LD*//*!
STM32Lowdensitydevices*/ /*#defineSTM32F10X_LD_VL*//*! STM32LowdensityValueLinedevices*/ /*#defineSTM32F10X_MD*//*! STM32Mediumdensitydevices*/ /*#defineSTM32F10X_MD_VL*//*! STM32MediumdensityValueLinedevices*/ /*#defineSTM32F10X_HD*//*! STM32Highdensitydevices*/ /*#defineSTM32F10X_HD_VL*//*! STM32Highdensityvaluelinedevices*/ /*#defineSTM32F10X_XL*//*! STM32XL-densitydevices*/ /*#defineSTM32F10X_CL*//*! STM32Connectivitylinedevices*/ #endif STM32启动文件选择: -startup_stm32f10x_ld_vl.s: forSTM32LowdensityValuelinedevices-startup_stm32f10x_ld.s: forSTM32Lowdensitydevices-startup_stm32f10x_md_vl.s: forSTM32MediumdensityValuelinedevices-startup_stm32f10x_md.s: forSTM32Mediumdensitydevices-startup_stm32f10x_hd.s: forSTM32Highdensitydevices-startup_stm32f10x_xl.s: forSTM32XLdensitydevices-startup_stm32f10x_cl.s: forSTM32Connectivitylinedevices cl: 互联型产品,stm32f105/107系列 vl: 超值型产品,stm32f100系列 xl: 超高密度产品,stm32f101/103系列 ld: 低密度产品,FLASH小于64K md: 中等密度产品,FLASH=64or128 hd: 高密度产品,FLASH大于128 /*Tip: Toavoidmodifyingthisfileeachtimeyouneedtoswitchbetweenthese devices,youcandefinethedeviceinyourtoolchaincompilerpreprocessor. 提示: 为了避免每次编译都要修改这些文件,意思是可以使用编译器的preprocessor选项来定义芯片型号等,免得反复更新这个文件。 ... -Low-densitydevicesareSTM32F101xx,STM32F102xxandSTM32F103xxmicrocontrollers wheretheFlashmemorydensityrangesbetween16and32Kbytes. -Low-densityvaluelinedevicesareSTM32F100xxmicrocontrollerswheretheFlash memorydensityrangesbetween16and32Kbytes. -Medium-densitydevicesareSTM32F101xx,STM32F102xxandSTM32F103xxmicrocontrollers这里定义的是各种产品线的FLASH的大小。 wheretheFlashmemorydensityrangesbetween64and128Kbytes. -Medium-densityvaluelinedevicesareSTM32F100xxmicrocontrollerswherethe Flashmemorydensityrangesbetween64and128Kbytes. -High-densitydevicesareSTM32F101xxandSTM32F103xxmicrocontrollerswhere theFlashmemorydensityrangesbetween256and512Kbytes. -High-densityvaluelinedevicesareSTM32F100xxmicrocontrollerswherethe Flashmemorydensityrangesbetween256and512Kbytes. -XL-densitydevicesareSTM32F101xxandSTM32F103xxmicrocontrollerswhere theFlashmemorydensityrangesbetween512and1024Kbytes. -ConnectivitylinedevicesareSTM32F105xxandSTM32F107xxmicrocontrollers. */ #if! defined(STM32F10X_LD)&&! defined(STM32F10X_LD_VL)&&! defined(STM32F10X_MD)&&! defined(STM32F10X_MD_VL)&&! defined(STM32F10X_HD)&&! defined(STM32F10X_HD_VL)&&! defined(STM32F10X_XL)&&! defined(STM32F10X_CL) #error"PleaseselectfirstthetargetSTM32F10xdeviceusedinyourapplication(instm32f10x.hfile)" #endif如果设备类型选择不正确,这里会报错的。 #if! definedUSE_STDPERIPH_DRIVER /** *@briefCommentthelinebelowifyouwillnotusetheperipheralsdrivers. Inthiscase,thesedriverswillnotbeincludedandtheapplicationcodewill bebasedondirectaccesstoperipheralsregisters */ /*#defineUSE_STDPERIPH_DRIVER*/ #endif /** *@briefInthefollowinglineadjustthevalueofExternalHighSpeedoscillator(HSE) usedinyourapplication Tip: ToavoidmodifyingthisfileeachtimeyouneedtousedifferentHSE,you candefinetheHSEvalueinyourtoolchaincompilerpreprocessor. 提示: 为了避免每次编译都要修改这些文件,意思是可以使用编译器的preprocessor选项来定义芯片型号等,免得反复更新这个文件。 ... */ #if! definedHSE_VALUE #ifdefSTM32F10X_CL #defineHSE_VALUE((uint32_t)25000000)/*! #else #defineHSE_VALUE((uint32_t)8000000)/*! #endif/*STM32F10X_CL*/ #endif/*HSE_VALUE*/ /** *@briefInthefollowinglineadjusttheExternalHighSpeedoscillator(HSE)Startup Timeoutvalue */①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。 倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 #defineHSE_STARTUP_TIMEOUT((uint16_t)0x0500)/*! 高速外部时钟启动时间 #defineHSI_VALUE((uint32_t)8000000)/*! 外部时钟设置的值 /** *@briefSTM32F10xStandardPeripheralLibraryversionnumber */ #define__STM32F10X_STDPERIPH_VERSION_MAIN(0x03)/*! <[31: 24]mainversion*/ #define__STM32F10X_STDPERIPH_VERSION_SUB1(0x05)/*! <[23: 16]sub1version*/ #define__STM32F10X_STDPERIPH_VERSION_SUB2(0x00)/*! <[15: 8]sub2version*/ #define__STM32F10X_STDPERIPH_VERSION_RC(0x00)/*! <[7: 0]releasecandidate*/ #define__STM32F10X_STDPERIPH_VERSION((__STM32F10X_STDPERIPH_VERSION_MAIN<<24)\ |(__STM32F10X_STDPERIPH_VERSION_SUB1<<16)\ |(__STM32F10X_STDPERIPH_VERSION_SUB2<<8)\ |(__STM32F10X_STDPERIPH_VERSION_RC)) /** *@} */ /**@addtogroupConfiguration_section_for_CMSIS *@{ */ /** *@briefConfigurationoftheCortex-M3ProcessorandCorePeripherals */ #ifdefSTM32F10X_XL #define__MPU_PRESENT1/*! #else #define__MPU_PRESENT0/*! #endif/*STM32F10X_XL*/ #define__NVIC_PRIO_BITS4/*! #define__Vendor_SysTickConfig0/*! /** *@briefSTM32F10xInterruptNumberDefinition,accordingtotheselecteddevice *in@refLibrary_configuration_section */ typedefenumIRQn { /******Cortex-M3ProcessorExceptionsNumbers***************************************************/ NonMaskableInt_IRQn=-14,/*! <2NonMaskableInterrupt*/ MemoryManagement_IRQn=-12,/*! <4Cortex-M3MemoryManagementInterrupt*/ BusFault_IRQn=-11,/*! <5Cortex-M3BusFaultInterrupt*/ UsageFault_IRQn=-10,/*! <6Cortex-M3UsageFaultInterrupt*/ SVCall_IRQn=-5,/*! <11Cortex-M3SVCallInterrupt*/ DebugMonitor_IRQn=-4,/*! <12Cortex-M3DebugMonitorInterrupt*/ PendSV_IRQn=-2,/*! <14Cortex-M3PendSVInterrupt*/ SysTick_IRQn=-1,/*! <15Cortex-M3SystemTickInterrupt*/ 中芯自动化有限公司---持续专注工业机器人。 回复收藏4分享淘帖赏举报 我爱你的吻123 21 主题 632 帖子 2051 积分 版主 关注TA发消息 专家等级: 结帖率: 0% 打赏: 0.00 受赏: 10.00 沙发 楼主|发表于2014-6-1117: 09|只看该作者|返回版面 /**这里是STM32比较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 启动 文件 中文 解释