实验一基于STM32固件库的MDK工程的建立及流水灯_第1页
实验一基于STM32固件库的MDK工程的建立及流水灯_第2页
实验一基于STM32固件库的MDK工程的建立及流水灯_第3页
实验一基于STM32固件库的MDK工程的建立及流水灯_第4页
实验一基于STM32固件库的MDK工程的建立及流水灯_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 实验一 基于 STM32 固件库的 MDK 工程的建立及流水灯 一 实验类型一 实验类型 验证性实验 二 实验器材二 实验器材 1 PC 微机 1 台 2 MDK 开发环境 三 实验目的与任务三 实验目的与任务 实验目的 实验目的 1 熟悉 Cortex M3 处理器开发平台 MDK 2 熟悉基于 STM32 固件库的 MDK 项目的配置 3 理解 STM32 处理器 GPIO 的结构 掌握 GPIO 引脚的配置方法 4 熟悉 GPIO 的配置过程 5 熟悉 MDK 开发平台软件仿真环境及外设仿真方法 实验任务 实验任务 如下图 STM32F103R8T6 处理器 GPIOA 的 GPIO Pin 6 控制 LED1 GPIO Pin 7 控制 LED2 建立一个基于 STM32 固件库的 MDK 项目 实现对 LED 灯的控制 使 LED1 每秒闪烁 1 次 LED2 每秒闪烁 2 次 LED1 3 3V 2K R 2K R PA6 PA7 LED2 四 参考资料四 参考资料 1 嵌入式系统基础及应用 第 7 章 GPIO 部分 2 参考手册 STM32F10 xxx RM0008 CH Rev7V3 pdf 3 数据手册 STM32F103CDE 增强型系列数据手册 2009 年 3 月 pdf 4 固件库 STM32F101xx 和 STM32F103xx 固件函数库 pdf 五 实验基本原理五 实验基本原理 1 STM32每个 GPIO 引脚具有工作模有 浮空输入 带上拉输入 带下拉输入 模拟 输入 开漏输出 推挽输出 复用功能的推挽输出 复用功能的开漏输出等 由上图可知 若驱动 LED1 LED2 需要设置相应的 IO 引脚为开漏输出或推挽输出 2 对于 STM32 GPIO 端口的配置 涉及的寄存器的作用 2个32bits 的配置寄存器 GPIOx CRL GPIOx CRH 用于配置各 IO 引脚的输入输出 方式和速度 各位含义如下 2 2个32bits 的数据寄存器 GPIOx IDR GPIOx ODR 用于读取 IO 引脚的状态和设置 IO 引脚输出电位 1个32bits 的置位 复位寄存器 GPIOx BSRR 用于置位复位某些 IO 引脚的原子操作 1个16bits 的复位寄存 器 GPIOx BRR 用于复位某些引脚的原子操作 1个32bits 的 Lock 寄存器 GPIOx LCKR 3 在 STM32中如何配置片内外设使用的 IO 端口 启用相应的 GPIO 时钟 设置 GPIO 引脚的输入输出方式及传输速度 设置 GPIO 引脚初值 4 STM32固件库对 GPIO 端口定义及相关操作函数 固件库对 STM32处理器的寄存器进行了定义 对外设的操作提供了丰富的函数 以下 对 GPIO 相关的定义如下 1 对 GPIO 端口的定义如下 3 2 常用 GPIO 库函数 GPIO Init A GPIO InitTypeDef 结构体定义于文件 stm32f10 x gpio h typedef struct uint16 tGPIO Pin GPIOSpeed TypeDef GPIO Speed GPIOMode TypeDef GPIO Mode GPIO InitTypeDef B 对 GPIO 引脚的定义如下 C 引脚输入输出方式定义如下 4 D 引脚传输速度定义如下 3 常用 GPIO 库函数 GPIO SetBits 4 常用 GPIO 库函数 GPIO ResetBits 5 该实验所涉及的时钟的操作 APB 外设时钟的设置 使用某个片内外设时 需要打开该外设的时钟 GPIO 连接于 APB2 STM32固件库提供 了函数 RCC APB2PeriphClockCmd 用于打开关闭连接到 APB2上 所有外设的时钟 5 RCC APB2Periph 该参数被门控的 APB2外设时钟 可以取下表的一个或者多个取值的组合作为该参数的 值 六 实验步骤六 实验步骤 1 1 新建基于新建基于 STM32STM32 固件库的工程项目固件库的工程项目 1 下载固件库 STM32F10X 系列单片机固件库下载地址 ector doctype FIRMWARE ClassID 1734 下载文件名称 stm32f10 x stdperiph lib zip 解压固件库得到 6 2 建立工程文件夹和子文件夹 A 建立工程文件夹 STM SY1 在 STM SY1 下面建立两个子文件夹 MDK 和 User MDK 用于存放工程文件 USER 用于存放用户源程序 B COPY 固件库目录下 Libraries 中所有文件夹到工程文件夹 STM SY1 至此 STM SY1 存在如下四个文件夹 C 在 MDK 文件下新建 Obj 和 List 两个文件用来存放编译文件和项目文件 D 将固件库文件夹 STM32F10 x StdPeriph Lib V3 5 0 Project STM32F10 x StdPeriph Template 中如下四个文件复制到项目文件夹 USER 目录 3 在 MDK 环境下新建工程 选择项目文件目录中 MDK 文件夹保存项目 JX1 选择处理器 7 选择不自动增加启动文件 Startup S 4 设置项目组织结构 如图 更改目标名称为 JX1 建立四个组 Group 如图为 Group CMSIS 添加文件 项目文件夹中 CMSIS CM3 CoreSupport 的 core cm3 c 项目文件夹中 CMSIS CM3 DeviceSupport ST STM32F10 x 的 system stm32f10 x c 8 如图为 Group STD PER LIB 添加文件 项目文件夹中 STM32F10 x StdPeriph Driver src 下所有文件 如图为 Group STARTUP 添加文件 所选处理器为中密度处理器 添加项目文件夹中 CMSIS CM3 DeviceSupport ST STM32F10 x startup arm 下 startup stm32f10 x md s 如图为 Group USER 添加文件 项目文件夹中 USER 中添加 stm32f10 x it c 9 配置完成结果 5 设置项目属性 第一步 勾上 Create HEX File 选项 第二步 选择项目文件夹中 MDK LIST 为 list 输出目录 10 选择项目文件夹中 MDK Obj 为 Obj 输出目录 设置 C C 预定义宏 STM32F10X MD USE STDPERIPH DRIVER 设置 C C 包含的头文件 11 6 基本 Main 文件的建立 建立 Main c 文件 保存到项目文件夹中 USER 目录 7 保存整个项目 编译项目 完成 STM32 项目文件的配置 2 建立 SY GPIO C 和 SY GPIO H 文件 保存到 USER 文件夹 并添加到 USER 组 SY GPIO C 实现 GPIO 引脚的初始化 实现对 GPIO 引脚的操作 12 SY GPIO H 对中用到的新的数据类型 常量 宏进行定义 对 SY GPIO C 中实现的函 数进行申明 供其他程序调用 SY GPIO C 的内容如下 SY GPIO H 的内容如下 3 SY GPIO C 已经提供对 LED 的相关 GPIO 端口和引脚初始化及基本操作 为实现实验的 要求 LED1 每秒闪烁 1 次 LED2 每秒闪烁 2 次 Main 文件的需做相应的修改 Main C 的内容为 13 4 程序的仿真 1 实验是采用 Keil 软件仿真 需要设置仿真环境 2 仿真过程 A 通过编译 建立好目标文件 B 点击工具栏里的进入仿真界面 14 C 打开菜单外设栏 GPIOA D 单步执行 执行 SY GPIO Configration 后 观察 GPIOA 的工作方式 是否与预 想得符合 E 利用软件逻辑分析仪分析输出的波形 点击工具栏里的查看仿真波形 15 F 点击 setup

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论