《上汽大众-玩转STM32—F103霸道》由会员分享,可在线阅读,更多相关《上汽大众-玩转STM32—F103霸道(898页珍藏版)》请在金锄头文库上搜索。
1、零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 1 / 898 淘宝:https:/fire- 第1章 如何使用本书 1.1 本书的学习顺序 本书分为基础入门篇和提高篇,入门篇需要按照顺序学习,讲究循序渐进,步步为营。 学习完基础篇之后,应该算基本入门M3。提高篇属于高级例程,学习的时候并不一定要按 照书中的章节排序,可根据需要跳跃式的学习。 1.2 本书的参考资料 本书参考资料为:STM32F10X-中文参考手册和Cortex-M3 权威指南,这两本 是 ST官方的手册,属于精华版,面面俱到,无所不包。限于篇幅问题,本书不可能面面具 到,着重框图分析和代码讲解,有关寄存器的详细描述
2、则略过,在学习本书的时候,涉及 到寄存器描述部分还请参考这两本手册,这样学习效果会更佳。 1.3 本书的编写风格 本书着重讲解 F103 的外设以及外设的应用,力争全面分析每个外设的功能框图和外设 的使用方法,让读者可以零死角的玩转 STM32F103系列。基本每个章节对应一个外设, 每章的主要内容大概分为三个部分,第一部分为简介,第二部分为外设功能框图分析,第 三部分为代码讲解。 外设简介则是用自己的话把外设概括性的介绍一遍,力图语句简短,通俗易懂,并不 会完全照抄数据手册的介绍。 外设功能框图分析则是章节的重点,该部分会详细讲解功能框图的每个部分的作用, 这是学习 F103 的精髓所在,掌
3、握了整个外设的框图则可以熟练的使用该外设,熟练的编程, 日后学习其他型号的单片机,也将会得心应手。因为即使单片机的型号不同,外设的框图 还是基本一样的。这一步的学习比较枯燥,但是必须死磕,方能达成所愿。 代码分析则是讲解使用该外设的实验讲解,主要分析代码流程,和一些编程的注意事 项。在掌握了框图之后,代码部分则是手到擒来而已。 1.4 本书的配套硬件 本书配套的硬件平台为:秉火 STM32-F103ZE-霸道,型号简称“霸道”,学习的时候 如果配套该硬件平台做实验,学习必会达到事半功倍的效果,可以省去中间移植时遇到的 各种问题。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 2 /
4、 898 淘宝:https:/fire- 图 1-1 秉火 STM32F103霸道 1.5 本书的技术论坛 如果在学习过程中遇到问题,可以到论坛: 发帖交流 ,开源共享,共 同进步。 鉴于水平有限,本书难免有纰漏,热心的读者也可把勘误发到论坛好让我们改进做得 更好,祝您学习愉快,M3的世界,秉火与您同行。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 3 / 898 淘宝:https:/fire- 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 4 / 898 淘宝:https:/fire- 第2章 如何安装 KEIL5 本章内容所涉及的软件只供教学使用,不得用于商业用途
5、。个人或公司因商业用途导 致的法律责任,后果自负。 2.1 温馨提示 1、安装路径不能带中文,必须是英文路径 2、安装目录不能跟 51 的 KEIL或者 KEIL4 冲突,三者目录必须分开 3、KEIL5 的安装比起 KEIL4 多了一个步骤,必须添加 MCU库,不然没法使用。 4、如果使用的时候出现莫名其妙的错误,先百度查找解决方法,莫乱阵脚。 2.2 获取 KEIL5 安装包 要想获得 KEIL5 的安装包,在百度里面搜索“KEIL5 下载”即可找到很多网友提供的 下载文件,或者到 KEIL 的官网下载: 非常麻烦。我们这里面 KEIL5 的版本是 MDK5.15,以后有新版本大家可使用更
6、高版本。 2.3 开始安装 KEIL5 双击 KEIL5 安装包,开始安装,next。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 5 / 898 淘宝:https:/fire- Agree,Nest 选择安装 路径,路径不能带中文,next 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 6 / 898 淘宝:https:/fire- 填写用户信息,全部填空格(键盘的 space 键)即可,next Finish,安装完毕 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 7 / 898 淘宝:https:/fire- 2.4 安装 STM32 芯片包 KEI
7、L5 不像 KEIL4 那样自带了很多厂商的 MCU型号,KEIL5 需要自己安装。 把下面弹出的界面关掉,我们直接去 keil 的官网下载: 直接用我们下载好的包。 在官网中找到STM32F1、STM32F4、STM32F7这3个系列的包下载到本地电脑,具体 下载哪个系列的根据你使用的型号下载即可,这里我只下载我自己需要使用的 F1/4/7 这三 个系列的包,F1 代表 M3,F4 代表 M4,F7 代表 M7。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 8 / 898 淘宝:https:/fire- 把下载好的包双击安装即可,安装路径选择跟 KEIL5 一样的安装路径,安装
8、成功之后, 在 KEIL5 的 Pack Installer 中就可以看到我们安装的包,以后我们新建工程的时候,就有单 片机的型号可选。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 9 / 898 淘宝:https:/fire- 第3章 如何用 DAP仿真器下载程序 3.1 仿真器简介 本书配套的仿真器为 Fire-Debugger,遵循 ARM公司的 CMSIS-DAP标准,支持所有基 于 Cortex-M 内核的单片机,常见的 M3、M4和 M7都可以完美支持。 Fire-Debugger支持下载和在线仿真程序,支持 XP/WIN7/WIN8/WIN10这四个操作系统, 免驱
9、,不需要安装驱动即可使用,支持 KEIL和 IAR直接下载,非常方便。 3.2 硬件连接 把仿真器用 USB 线连接电脑,如果仿真器的灯亮则表示正常,可以使用。然后把仿真 器的另外一端连接到开发板,给开发板上电,然后就可以通过软件 KEIL 或者 IAR 给开发 板下载程序。 图 3-1 仿真器与电脑和开发板连接方式 图 3-2 仿真器与指南者连接图 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 10 / 898 淘宝:https:/fire- 图 3-3 仿真器与霸道连接图 3.3 仿真器配置 在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件 KEIL,在魔 术棒
10、选项卡里面选择仿真器的型号,具体过程看图示: 1. Debug选项配置 图 3-4 Debug 选择 CMSIS-DAP Debugger 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 11 / 898 淘宝:https:/fire- 2. Utilities选项配置 图 3-5 Utilities 选择 Use Debug Driver 3. Debug Settings 选项配置 图 3-6 Debug Settings 选项配置 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 12 / 898 淘宝:https:/fire- 3.4 选择目标板 选择目标板,具体选择
11、多大的 FLASH 要根据板子上的芯片型号决定。秉火 STM32 开 发板的配置是:F1选 512K,F4选 1M。这里面有个小技巧就是把 Reset and Run也勾选上, 这样程序下载完之后就会自动运行,否则需要手动复位。擦除的 FLASH 大小选择 Sectors 即可,不要选择 Full Chip,不然下载会比较慢。 图 3-7 选择目标板 3.5 下载程序 如果前面步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程 序不需要其他额外的软件,直接点击 KEIL中的 LOAD 按钮即可。 程序下载后,Build Output 选项卡如果打印出 Application r
12、unning则表示程序下载成 功。如果没有出现实验现象,按复位键试试。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 13 / 898 淘宝:https:/fire- 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 14 / 898 淘宝:https:/fire- 第4章 如何用串口下载程序 秉火 STM32F103ZET6“霸道”自带串口下载电路,配合上位机可实现一键 ISP下载, 不需要修改开发板上的 BOOT 设置。与仿真器 Fire-Debugger 相比,ISP 只能下载程序,不 能在线调试且下载速度慢。 4.1 安装 USB转串口驱动 秉火的 STM32 开发
13、板用的 USB 转串口的驱动芯片是 CH340,要使用串口得先在电脑 中安装 USB 转串口驱动CH340 版本。驱动可在网上搜索下载或者使用我们光盘里面提供 的。WIN7 用户请用管理员身份安装。如果不能安装成功,请先百度查找原因自行解决。 如果 USB 转串口驱动安装成功,USB 线跟板子连接没有问题,在计算机-管理-设备 管理器-端口中可识别到串口。 图 4-1 USB 转串口驱动安装成功 如果识别不了串口,请检查 USB 线是否完好,可换一根 USB线试试。 4.2 硬件连接 用 USB 线连接电脑和开发板的 USB转串口接口:USB TO UART,给开发板上电。 零死角玩转零死角玩
14、转 STM32F103霸道霸道 论坛: 15 / 898 淘宝:https:/fire- 图 4-2 串口下载连接图 图 4-3 指南者/霸道串口下载接线图 4.3 开始下载 打开 mcuisp软件,配置如下:搜索串口,设置波特率为 115200(尽量不要设置的太 高) 、选择要下载的 HEX 文件、校验、编程后执行、DTR 低电平复位,RTS 高电 平进入 bootloader、开始编程。如果出现一直连接的情况,按一下开发板的复位键即可。 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 16 / 898 淘宝:https:/fire- 图 4-4 ISP 下载配置 图 4-5 IS
15、P 下载成功 零死角玩转零死角玩转 STM32F103霸道霸道 论坛: 17 / 898 淘宝:https:/fire- 4.4 ISP 一键下载原理分析 4.4.1 ISP简介 ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最 终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再 编程。 ISP 的时候需要用到(bootloader)自举程序,自举程序存储在 STM32 器件的内部自举 ROM 存储器(系统存储器)中。其主要任务是通过一种可用的串行外设( USART、 CAN、 USB、 I2C 等)将应用
16、程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议, 其中包含兼容的命令集和序列。 4.4.2 ISP普通下载 现在我们针对 USART1的 ISP 进行分析,通常的 ISP 的步骤如下: 1. 电脑通过 USB转串口线连接 STM32 的 USART1,并打开电脑端的上位机; 2. 设置跳线保持 BOOT0 为高电平,BOOT1 为低电平; 3. 复位单片机使其进入 bootloader模式,通过上位机下载程序; 4. 下载完毕,设置跳线保持 BOOT0为低电平,BOOT1 为低电平; 5. 复位单片机即可启动用户代码,正常运行。 以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 I