教你用STM32一步一步点亮led灯

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32之一步一步点亮led (2011-05-09 19:40)

标签: stm32led v3.4MDK 4.12入门分类:stm32

入手stm32以来,一直想快速上手,所以在各大论坛闲逛,各个达人的blog

上学习,正所谓欲速则不达,心急是吃不了热豆腐的!有木有?

最终决定使用st官网的库开发,据大侠们写道使用库可以快速上手,貌似的确如此,一个个教程写的那么好,直接拿过来用就是了。可是那么多个库,聪明的你请告诉到底选择哪一个啊?My God!实话实说,我被这些库折腾了个够!好吧,我最后还是承认最后用的是v3.4的库,是很方便!

切入正题,点亮LED。

硬件:红牛开发板,STM32F103ZET6(144封装).

软件:RealView MDK 4.12

stm32固件库:v3.4 附上自己整理后的库: V3.4_clean.rar

根据官网库自己整理了下,新建了工程模板如下图:(主要参考文章《在

Keil MDK+环境下使用STM32 V3.4库.pdf》)在KeilMDK+环境下使用STM32V3.4库.pdf

入图所示:新建一个目录01_ProLed,建议放在英文路径下,避免不必要的麻烦。将上面的库v3.4解压到此目录,再新建一个project目录,存放工程。

说明:

CMSIS:最底层接口。StartUp:系统启动文件。StdPeriph_Lib:stm32外围设

备驱动文件。Project:工程文件。User:用户文件。新建工程步骤:此处略去300字。

简单说明:

1.core_cm3.c/core_cm3.h

该文件是内核访问层的源文件和头文件,查看其中的代码多半是使用汇编语言编写的。在线不甚了解。--摘自《在Keil MDK+环境下使用STM32 V3.4库》

2.stm32f10x.h

该文件是外设访问层的头文件,该文件是最重要的头文件之一。就像51里面的reg51.h一样。例如定义了 CPU是哪种容量的 CPU,中断向量等等。除了这些该头文件还定义了和外设寄存器相关的结构体,例如:

1.typedef struct

2.{

3. __IO uint32_t CR;

4. __IO uint32_t CFGR;

5. __IO uint32_t CIR;

6. __IO uint32_t APB2RSTR;

7. __IO uint32_t APB1RSTR;

8. __IO uint32_t AHBENR;

9. __IO uint32_t APB2ENR;

10. __IO uint32_t APB1ENR;

11. __IO uint32_t BDCR;

12. __IO uint32_t CSR;

13.

14.#ifdef STM32F10X_CL

15. __IO uint32_t AHBRSTR;

16. __IO uint32_t CFGR2;

17.#endif /* STM32F10X_CL */

18.

19.#if defined (STM32F10X_LD_VL)|| defined (STM32F10X_MD_VL)||

defined (STM32F10X_HD_VL)

20. uint32_t RESERVED0;

21. __IO uint32_t CFGR2;

22.#endif /*STM32F10X_LD_VL ||STM32F10X_MD_VL ||STM32F10X_HD_VL */

23.} RCC_TypeDef;

包含了那么多寄存器的定义,那么在应用文件中(例如自己编写的 main 源文件)只需要包含

stm32f10x.h即可,而不是以前固件库的需要包含 stm32f10x_conf.h这个头文件。--摘自《在Keil MDK+环境下使用STM32 V3.4库》

3.system_stm32f10x.c/h

该头文件也可以称为外设访问层的头文件和源文件。在该文件中可以定义系统的时钟频率,定义低速时钟

总线和高速时钟总线的频率,其中最关键的函数就是 SystemInit()了,这个后面会详细介绍。总之这两

个文件是新固件库的重点,有了它粮也大大简化了使用 stm32的初始化工作。

--摘自《在Keil MDK+环境下使用STM32 V3.4库》

4.stm32f10x_conf.h

这个文件和 V2 版本的库的内容是一样的,需要使用哪些外设就取消哪些外设的注释。例如需要使用 GPIO功能,但不使用 SPI功能,就可以这样操作。--摘自《在Keil MDK+环境下使用STM32 V3.4库》

1.#include"stm32f10x_gpio.h"

2./*#include"stm32f10x_spi.h"*/

5.main.c

这个文件就不用多说了,自己编写。 --摘自《在Keil MDK+环境下使用

STM32 V3.4库》

6.stm32f10x_it.c/h

这两个文件包含了 stm32中断函数,在源文件和头文件中并没有把所有的中断入口函数都写出来,而

只写了 ARM内核的几个异常中断,其他的中断函数需要用户自己编写。--摘自《在Keil MDK+环境下使用STM32 V3.4库》

OK,开始写代码了。

由于3.4的库在启动的时候已经设置好时钟了(将在后面有讲述),所以我们只需设置好对应的GPIO即可。

查看硬件连接:

来点亮PF6.

新建led.c与led.h,添加到User Code下面。

led.h

相关文档
最新文档