您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > MDK环境下利用STM32库V3.5创建工程并调试的方法
机电工程学院STM32实践张华林MDK环境下利用STM32库V3.5创建工程并调试的方法一、STM32标准外设库及说明1.解压STM32F10x_StdPeriph_Lib_V3.5.0库到硬盘(如F盘)2.库中自带的MDK模板示例1)位置机电工程学院STM32实践张华林2)工程组织结构3)详细结构机电工程学院STM32实践张华林机电工程学院STM32实践张华林3.库文件结构1)Chm中的目录树2)Windows资源管理器中的结构机电工程学院STM32实践张华林机电工程学院STM32实践张华林表:STM32F10x_StdPeriph_Lib_V3.5.0文件夹描述_htmresc本文件夹包含了所有的html页面资源LibrariesCMSIS文件路径较深STM32F10x_StdPeriph_Driverinc标准外设库驱动头文件src标准外设库驱动源文件ProjectExamples标准外设库驱动的完整例程TemplateMDK-ARMKEILRVMDK的项目模板示例UtilitiesSTM32-EVAL本文件夹包含了用于STM32100B-EVAL等评估板的专用驱动标准外设库的第一部分是CMSIS和STM32F10x_StdPeriph_Driver,是STM32F10xCPU资源的总括:CMSIS是独立于供应商的Cortex-M处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间;STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。机电工程学院STM32实践张华林CMSIS中内核设备访问层:(CM3/CoreSupport)core_cm3.h:CMSIS的Cortex-M3内核设备访问层头文件core_cm3.c:CMSIS的Cortex-M3内核设备访问层源文件微控制器外设访问层:(CM3/DeviceSupport/ST/STM32F10X)stm32f10x.h:CMSIS的Cortex-M3STM32f10xxx微控制器外设访问层头文件system_stm32f10x.h:CMSIS的Cortex-M3STM32f10xxx微控制器外设访问层头文件system_stm32f10x.c:CMSIS的Cortex-M3STM32f10xxx微控制器外设访问层源文件STM32F10xxx标准外设库体系结构机电工程学院STM32实践张华林文件功能说明文件名功能描述具体功能说明core_cm3.hcore_cm3.cCortex-M3内核及其设备文件访问Cortex-M3内核及其设备:NVIC,SysTick等访问Cortex-M3的CPU寄存器和内核外设的函数stm32f10x.h微控制器专用头文件这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等system_stm32f10x.hsystem_stm32f10x.c微控制器专用系统文件函数SystemInit,用来初始化微控制器函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳转到main前调用SystemFrequncy,该值代表系统时钟频率startup_stm32f10x_Xd.s编译器启动代码微控制器专用的中断处理程序列表(与头文件一致)弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)该文件是与编译器相关的stm32f10x_conf.h固件库配置文件通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。stm32f10x_it.hstm32f10x_it.c外设中断函数文件用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。stm32f10x_ppp.hstm32f10x_ppp.c外设驱动函数文件包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。Application.c用户文件用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。机电工程学院STM32实践张华林在实际开发过程中,根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):(1)使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。用户只需要配置文件”stm32f10x_conf.h”,并使用相应的文件”stm32f10x_ppp.h/.c”即可。(2)不使用外设驱动:这时应用程序开发基于外设的寄存器结构和位定义文件。标准外设库(StdPeriph_Lib)支持STM32F10xxx系列全部成员:大容量,中容量和小容量产品。实际开发中根据使用的STM32产品具体型号,用户可以通过文件”stm32f10x.h”中的预处理define或者通过开发环境中的全局设置来配置标准外设库(StdPeriph_Lib),一个define对应一个产品系列。STM32F10x_LD:STM32小容量产品STM32F10x_MD:STM32中容量产品STM32F10x_HD:STM32大容量产品在库文件中这些define的具体作用是:l文件“stm3210f.h”中的中断IRQ定义l启动文件中的向量表,小容量,中容量,大容量产品各有一个启动文件l外设存储器映像和寄存器物理地址l产品设置:外部晶振(HSE)的值等l系统配置函数通过宏定义这种方式,可以使标准外设库适用于不同系列的产品,同时也方便与不同产品之间的软件移植,极大的方便了软件的开发。STM32F10XXX标准外设库的使用标准外设库中包含了众多的变量定义和功能函数,如果不能了解他们的命名规范和使用规律将会给编程带来很大的麻烦,本节将主要叙述标准外设库中的相关规范,通过这些规范的学习可以更加灵活的使用固件库,同时也将极大增强程序的规范性和易读性,同时标准外设库中的这种规范也值得我们在进行其他相关的开发时使用和借鉴。1.缩写定义标准外设库中的主要外设均采用了缩写的形式,通过这些缩写可以很容易的辨认对应的外设。缩写外设/单元ADC模数转换器BKP备份寄存器CAN控制器局域网模块CECCRCCRC计算单元DAC数模转换器DBGMCU调试支持机电工程学院STM32实践张华林DMA直接内存存取控制器EXTI外部中断事件控制器FLASH闪存存储器FSMC灵活的静态存储器控制器GPIO通用输入输出I2CI2C接口IWDG独立看门狗PWR电源/功耗控制RCC复位与时钟控制器RTC实时时钟SDIOSDIO接口SPI串行外设接口TIM定时器USART通用同步/异步收发器WWDG窗口看门狗2.命名规则标准外设库遵从以下命名规则PPP表示任一外设缩写,例如:ADC。源程序文件和头文件命名都以“stm32f10x_”作为开头,例如:stm32f10x_conf.h。常量仅被应用于一个文件的,定义于该文件中;被应用于多个文件的,在对应头文件中定义。所有常量都由英文字母大写书写。寄存器作为常量处理。他们的命名都由英文字母大写书写。在大多数情况下,他们采用与缩写规范一致。外设函数的命名以该外设的缩写加下划线为开头。每个单词的第一个字母都由英文字母大写书写,例如:SPI_SendData。在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。对于函数命名,总的来说有以下规则:l名为PPP_Init的函数,其功能是根据PPP_InitTypeDef中指定的参数,初始化外设PPP,例如TIM_Init.l名为PPP_DeInit的函数,其功能为复位外设PPP的所有寄存器至缺省值,例如TIM_DeInit.l名为PPP_Init的函数,其功能为通过设置PPP_InitTypeDef结构中的各种参数来定义外设的功能,例如:USART_Init.l名为PPP_Cmd的函数,其功能为使能或者失能外设PPP,例如:SPI_Cmd.l名为PPP_ITConfig的函数,其功能为使能或者失能来自外设PPP某中断源,例如:RCC_ITConfig.机电工程学院STM32实践张华林l名为PPP_DMAConfig的函数,其功能为使能或者失能外设PPP的DMA接口,例如:TIM1_DMAConfig.l用以配置外设功能的函数,总是以字符串“Config”结尾,例如GPIO_PinRemapConfig.l名为PPP_GetFlagStatus的函数,其功能为检查外设PPP某标志位被设置与否,例如:I2C_GetFlagStatus.l名为PPP_ClearFlag的函数,其功能为清除外设PPP标志位,例如:I2C_ClearFlag.l名为PPP_GetITStatus的函数,其功能为判断来自外设PPP的中断发生与否,例如:I2C_GetITStatus.l名为PPP_ClearITPendingBit的函数,其功能为清除外设PPP中断待处理标志位,例如:I2C_ClearITPendingBit.3.变量类型定义在早期的版本中有24个变量类型定义,在Keil的安装根目录下,可以找到对应的定义,路径为:Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h/*Includes------------------------------------------------------------------*//*Exportedtypes------------------------------------------------------------*/typedefsignedlongs32;typedefsignedshorts16;typedefsignedchars8;typedefsignedlongconstsc32;/*ReadOnly*/typedefsignedshortconstsc16;/*ReadOnly*/typedefsignedcharconstsc8;/*ReadOnly*/typedefvolatilesignedlongvs32;typedefvolatilesignedshortvs16;typedefvolatilesignedcharvs8;typedefvolatilesignedlongconstvsc32;/*ReadOnly*/typedefvolatilesignedshortconstvsc16;/*ReadOnly*/typedefvolatilesignedcharconstvsc8;/*ReadOnly*/typedefunsignedlongu32;typedefunsignedshortu16;typedefunsignedcharu8;typedefunsignedlongconstuc32;/*ReadOnly*/typedefunsignedshortconstuc16;/*ReadOnly*/typedefunsignedcharconstuc8;/*ReadOnly*/typedefvolatileunsignedlongvu32;typedefvolatileunsignedshortvu16;typedefvolatileunsigne
本文标题:MDK环境下利用STM32库V3.5创建工程并调试的方法
链接地址:https://www.777doc.com/doc-6431309 .html