• /  12
  • 下载费用: 19.90积分  

STM32_在KEIL_MDK环境下使用V3.4库

'STM32_在KEIL_MDK环境下使用V3.4库'
在环境下使用库“小”教程Keil MDKSTM32 V3.4 - 1 - 在在 Keil MDK 环境下使用环境下使用 STM32 V3.4 库“小”教程库“小”教程 简介简介 写这篇“小”教程主要是和大家分享使用 STM32 的基本方法。在一年以前,我开始接触并开始使用 STM32。STM32 价格便宜,外设丰富,开发和仿真环境使用方便,一下子便爱上了它。我当时使用了 IAR 编译环境,固件库也是以前的 V2 版本。由于 ST 公司更新了 STM32 的固件库,所以想试着使用新固件库。 刚开始使用新库时也遇到了一些问题,但是慢慢熟悉不但觉得不难不烦,反而觉得 V3 比 V2 更好用。在这 里我和大家分享一下使用 V3.4 库的方法,希望大家喜欢,如有错误请指出,在下不慎感激。 这篇“小”教程分以下四步来说,第一步,获得库文件,并进行适当的整理;第二步,建立工程,并 建立条理清晰的 GROUP;第三步,修改工程的 Option 属性;第四步:使用 JLINK 仿真调试。下面就分这 四大步来逐个说明。 在环境下使用库“小”教程Keil MDKSTM32 V3.4 第一步第一步 获得库文件,并进行适当的整理获得库文件,并进行适当的整理 第一步非常的简单,访问 ST 的官网上就可以获得最新的固件库,在我写“小”教程的时候最新的固 件库是 V3.4。除了获得固件库之外还可以获得和固件库相关的说明文档。在以前的官网上可以下载到一 篇名为《如何从 STM32F10xxx 固件库 V2.0.3 升级为 STM32F10xxx 标准外设库 V3.0.0》的应用手册, 但是在现在的 ST 官网上却找不到这篇十分有用的应用文档,不过却可以在百度文库中找到,这篇文档详 细说明了新固件库的文件结构,在 Keil 工程建立之前,值得一看。 图 1 CMSIS 文件夹包含内容 图 1 是新固件库改动比较大的部分,ST 称为 CMSIS。在这个文件夹下面出现了一些新的源文件、头 文 件 和 启 动 代 码 , 新 的 源 文 件 如 core_cm.c system_stm32f10x.c , 也 有 新 的 启 动 代 码 如 start_stm32f10x_h/m/ld.s。 在第二部分会详细介绍这些文件到底有什么作用, 以及和 V2 版本的区别。 在这里我也补充一句,V3.4 还是和 V3.0 有点区别,V3.4 又比 V3.0 多出了几个启动代码。 我个人觉得这些文件“埋”的太深,使用起来有点不方便,所以我一般对这些文件进行一些整理,把 相关文件放在一起,并取上一个标准化的名字,这些文件夹的名字一般和原始固件库文件夹的名字相同, 只是把需要的文件放在一起。例如我把启动代码(startup)放在一个文件夹下面,而在这个文件下面只 放 Keil MDK 有关的启动代码,把 IAR 和 GCC 的文件全部给去除了,这样做不但使得文件夹内容“清爽” 也可以避免不必要的错误。一般在工程目录下面我会建立以下几个文件夹,如图 2 所示。当然还会建立两 个很有用的文件夹,一个取名为 Listing,另一个取名为 Object。这两个文件夹会保存 Keil 编译连接过 程中产生的一些文件,虽然是一个不起眼的细节但是也请大家关注,不然在工程目录下面“邋遢”的很! - 2 - 在环境下使用库“小”教程Keil MDKSTM32 V3.4 图 2 工程文件夹的结构和相关文件 下面来简单说说这些文件各有什么作用。在下重在应用,对里面的内容也知之甚少。 core_cm3.c/core_cm3.h 该文件是内核访问层的源文件和头文件,查看其中的代码多半是使用汇编语言编写的。在线不甚了解。 stm32f10x.h 该文件是外设访问层的头文件,该文件是最重要的头文件之一。例如定义了 CPU 是哪种容量的 CPU,中断 向量等等。除了这些该头文件还定义了和外设寄存器相关的结构体,例如: typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; 包含了那么多寄存器的定义,那么在应用文件中(例如自己编写的那么在应用文件中(例如自己编写的 main 源文件)只需要包含源文件)只需要包含 stm32f10x.h 即可即可,而不是以前固件库的需要包含 stm32f10x_conf.h 这个头文件。 system_stm32f10x.c/h 该头文件也可以称为外设访问层的头文件和源文件。在该文件中可以定义系统的时钟频率,定义低速时钟 总线和高速时钟总线的频率,其中最关键的函数就是 SystemInit()了,这个后面会详细介绍。总之这两 个文件是新固件库的重点,有了它粮也大大简化了使用 stm32 的初始化工作。 stm32f10x_conf.h 这个文件和 V2 版本的库的内容是一样的,需要使用哪些外设就取消哪些外设的注释。例如需要使用 GPIO - 3 - 在环境下使用库“小”教程Keil MDKSTM32 V3.4 - 4 - 功能,但不使用 SPI 功能,就可以这样操作。 #include “stm32f10x_gpio.h“ /* #include “stm32f10x_spi.h“ */ main.c 这个文件就不用多说了,自己编写。 stm32f10x_it.c/h 这两个文件包含了 stm32 中断函数,在源文件和头文件中并没有把所有的中断入口函数都写出来,而 只写了 ARM 内核的几个异常中断,其他的中断函数需要用户自己编写。stm32f10x_it.c 的最后给了这样 一个模板。 /******************************************************************************/ /* STM32F10x Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f10x_xx.s). */ /******************************************************************************/ /** * @brief This function handles PPP interrupt request. * @param None * @retval None */ /*void PPP_IRQHandler(void
关 键 词:
STM32_ KEIL_MDK 环境 使用 V3
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:STM32_在KEIL_MDK环境下使用V3.4库
链接地址: https://www.wenku365.com/p-39775511.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开