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

上传人:孙哥 文档编号:170904932 上传时间:2022-11-23 格式:DOCX 页数:14 大小:666.06KB
返回 下载 相关 举报
教你用STM32一步一步点亮led灯_第1页
第1页 / 共14页
教你用STM32一步一步点亮led灯_第2页
第2页 / 共14页
教你用STM32一步一步点亮led灯_第3页
第3页 / 共14页
点击查看更多>>
资源描述
STM32 之一步一步点亮 led (2011-05-09 19:40)标签:st m32 led v3.4 MDK 4.12 入门分类:st m32入手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)在Keil MDK+环境下使用STM32V3.4 库.pdf入图所示:新建一个目录01_ProLed,建议放在英文路径下,避免不必要的麻烦。 将上面的库v3.4解压到此目录,再新建一个project目录,存放工程。说明:CMSIS:最底层接口。St ar tUp:系统启动文件。St dPeriph_Lib: st m32外围设备驱动文件。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 struct2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.1.2.IO uint32_t CR;IO uint32_t CFGR;IO uint32_t CIR;IO uint32_t APB2RSTR;IO uint32_t APB1RSTR;IO uint32_t AHBENR;IO uint32_t APB2ENR;IO uint32_t APB1ENR;IO uint32_t BDCR;IO uint32_t CSR;#ifdef STM32F10X_CL_IO uint32_t AHBRSTR; _IO uint32_t CFGR2;#endif /* STM32F10X_CL */#if defined (STM32F10X_LD_VL) | defined (STM32F10X_MD_VL) | defined (STM32F10X_HD_VL)uint32_t RESERVED0;_IO uint32_t CFGR2;#endif /* STM32F10X_LD_VL | STM32F10X_MD_VL | STM32F10X_HD_VL */ RCC_TypeDef;包含了那么多寄存器的定义,那么在应用文件中(例如自己编写的 main 源文件) 只需要包含stm32f10x.h 即可,而不是以前固件库的需要包含 stm32f10x_conf.h 这个头文 件。一摘自在Keil MDK+环境下使用STM32 V3.4库3. system_stm32f10x.c/h 该头文件也可以称为外设访问层的头文件和源文件。在该文件中可以定义系统的 时钟频率,定义低速时钟总线和高速时钟总线的频率,其中最关键的函数就是Systemlnit() 了,这个后 面会详细介绍。总之这两个文件是新固件库的重点,有了它粮也大大简化了使用stm32的初始化工作。 摘自在Keil MDK+环境下使用STM32 V3.4库4. stm32f10x_conf.h这个文件和 V2 版本的库的内容是一样的,需要使用哪些外设就取消哪些外设的 注释。例如需要使用 GPIO 功能,但不使用 SPI 功能,就可以这样操作。 -摘自在Keil MDK+环境下使用STM32 V3.4库#includestm32f10x_gpio.h/*#includestm32f10x_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.h1.2.3.4.5.6.7.1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.#ifndef _LED_H_#define _LED_H_void Delay(uint32_t times);void LedInit(void);#endifled.c#include stm32f10x.h /* 函数名 :LedInit(void)* 描述 :* 输入 :无* 输出 :无* 返回 :无 */void LedInit(void)GPIO_InitTypeDef GPIO_InitStructure;/ 函数名 :Delay(uint32_t times)初始化GPIOF的Pin_6为推挽输出*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_InitStructure);/*32.33.34.* 描述 : 延时函数35.36.* 输入 : uint32_t times37.38.* 输出 :无39.40.* 返回 :无41.*/42.43.44.45.46.47.48.49.50.void Delay(uint32_t times) while(times-) uint32_t i;for (i=0; i0xffff; i+)!在 main.c 中加入 led 初始化与点亮关闭即可。1. /*!CFGR |=(uint32_t)RCC_CFGR_HPRE_DIV1;3.4.5.6.7.8./* PCLK2 = HCLK */RCC-CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;/* PCLK1 = HCLK */RCC-CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;从上面的分析可以看出,Systemlnit并不需要用户调用,启动代码会自动执行, 这样相当于少了一个 RCC_Configuration 函数的绝大多数内容。请大家注意是绝大多数内容而不 是全部,但是请大家格外 注意使用到的外设还是要第一时间使得该外设的时钟,像这样的一句千万不要忘 了/* 初始化 GPIOF 时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);如果没有设置好可能编译会出错1.设置宏。参考另一篇文章:2设置头文件目录:但凡有.h目录的都加进来,还有一点说明,在工程中是不 需要加载头文件的,编译器会根据设置自动到相应目录下查找,链接。有图有真相:源码:才ProLed.rar另:由于使用了官网的库,所以很多时候需要在工程中查找文件或者是关键字, 这个时候,可以用 SourceInsight 工具来辅助阅读代码,它的 Lookupreference 很好使。可以在project目录下再建一个目录Source Insight,比较麻烦,但是实在!我的更多文章 女口果你不逼自己一把,你根本不知道自己有多优秀 (2011-07-03 15:58:34) 移植 linux-2.6.38.8 (2011-07-02 18:27:27) 移植 u-boot-2010.06 到 mini2440 (2011-07-02 12:14:13) 常用文件重定向命令(2011-05-30 19:28:02)努力赚钱,是为了不让自己的爱情受到别人金钱的考验(2011-05-28 18:10:56)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!