零死角玩转STM32_F429(书籍)
第一章 如何使用本书
1.1 本书额参考资料
STM32F4xx 中文参考手册 Cortex®-M4 内核编程手册 ## 1.2 本书的编写风格 F429 的外设以及外设的应用 - 外设简介 - 外设功能框图分析 - 代码讲解 ## 1.3 本书的配套硬件 野火 STM32-F429 挑战者开发板 V2
1.4 本书的技术论坛
第二章 如何安装KEIL5
2.1 温馨提示
1、 安装路径不能带中文,必须是英文路径 2、 安装目录不能跟 51 的 KEIL 或者 KEIL4 冲突,三者目录必须分开 3、 KEIL5 的安装比起 KEIL4 多了一个步骤,必须添加 MCU 库,不然没法使用。 4、 如果使用的时候出现莫名其妙的错误,先百度查找解决方法,莫乱阵脚。
2.2 获取 KEIL5 安装包
第三章 如何用 DAP 仿真器下载程序
3.1 仿真器简介
本书配套的仿真器为Fire-Debugger,遵循ARM公司的CMSIS-DAP标准,支持所有 基于Cortex内核的单片机,常见的M3、M4和M7都可以完美支持。 Fire-Debugger 支持下载和在线仿真程序,支持 XP/WIN7/WIN8/WIN10 这四个操作系 统,免驱,不需要安装驱动即可使用,支持KEIL和IAR直接下载。
3.2 硬件连接
把仿真器用 USB 线连接电脑,如果仿真器的灯亮则表示正常,可以使用。然后把仿真 器的另外一端连接到开发板,给开发板上电,然后就可以通过软件 KEIL 或者 IAR 给开发板下载程序。

3.3 仿真器配置
一、脱机烧录器 |
fireFlasher Mini 是野火推出的其中一款脱机烧录器,可以在脱离电脑端的情况下对芯片进行脱机烧录。使用SWD接口协议烧录程序到目标板,可将多个固件一次烧录到目标板。野火脱机下载器/离线烧录器/编程烧写器 支持STM32 STM8 GD32 APM32。 |
- 脱机意义何在? 以前:给产品批量烧录程序的时候,需某种专用的烧录器或通过ISP下载,都需依赖电脑端给目标板烧录,效率极低。 现在:可完全脱离电脑端操作就实现对产品的批量烧录,大大提高效率,并可以防止源代码泄露。 |
- 烧录器使用什么接口连接目标板? 烧录器自带标准的20P JTAG接口连接目标板,使用SWD接口协议把固件烧录到目标板。 注意:如果目标板的“JTAG”管脚已经包含“SWD”管脚,只用三根线“tms tck gnd”就可进行烧录(具体操作方法见用户手册) |
- 支持哪些文件类型烧录? bin,hex,axf,elf文件 |
最后总结,使用脱机烧录器下载程序到目标板中运行基本分为两步: (1)通过上位机将可执行文件下载到脱机烧录器 (2)使用脱机烧录器直接将固件下载到开发板 |
二、STM32仿真器 |
DAP仿真器使用说明【视频+教程+引脚说明】: http://t.cn/EK4OIdh 野火自主研发DAP仿真器下载器——支持所有Cortex内核芯片。 |
CMSIS-DAP CMSIS-DAP是用于将调试端口连接到USB的调试单元的接口固件。在主机上执行的调试器通过USB连接到调试单元和运行应用程序软甲的设备。调试单元通过JTAG或SW连接到目标设备。ARM Cortex处理器提供coresight调试和跟踪单元。CMSIS-DAP支持包含一个或多个Cortex处理器的目标设备。 |
1. 特点 - 可以下载hex和bin格式文件。 - 在MDK及IAR软件中使用目前只支持SW下载方式、支持SWD和JTAG下载接口。 - MDK需要4.73以上版本,IAR需要6.5以上版本。 - 不丢固件、不用升级、不用装驱动!,对STM32开发很实用。 - 支持MDK/IAR,不用驱动,不丢固件 - 支持Cortex-MO/M1/M2/M3/M4/M7内核器件,如STM32F0/1/2/3/4/7、H7系列 - 4M下载速度,支持在线调试和仿真 - 只需4根线即可下载,也可对目标板3V3供电(不建议使用) - 支持XP/WIN7/WIN8/WIN10系统 |
2. 产品简介 ![]() ![]() |
跳线帽,这是一个可以活动的部件,外层是绝缘塑料,内层是导电材料,可以插在跳线针上面,将两根跳线针连接起来当跳线帽扣在两根跳线针上时是接通状态,有电流通过,称之为ON;反之不扣上跳线帽时,就说明是断开的,称之为OFF。 |
3. 使用方法: |
(1)硬件连接 - 把仿真器用USB线连接电脑, - 如果仿真器的灯亮则表示正常,可以使用。 - 然后把仿真器的另外一端连接到开发板,给开发板上电, - 然后就可以通过软件KEIL或者IAR给开发板下载程序。 |
![]() |
- MINI-USB数据线 - SWD线 - SWD TO JTAG转接板 - CMSIS-DAP主机 |
(2)说明 - 把仿真器用USB线连接电脑,无需安装驱动,连接好USB线后,此时仿真器无需连接开发板,如果红灯亮1s,然后亮绿灯则表示正常。 - 下载的时候红灯亮,下载完后绿灯亮。 |
主流仿真器: |
一、仿真器接口协议 1. JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为: - TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式; - TCK:测试时钟输入; - TDI:测试数据输入,数据通过TDI引脚输入JTAG接口; - TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出; JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口(并行接口),因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。所以,目前市场上已经很少看到它的身影了。 |
2. SWD接口 串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。 SWD和传统的调试方式区别: - SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。 - 在大家GPIO刚好缺一个的时候,可以使用SWD仿真,这种模式支持更少的引脚。 - 在大家板子的体积有限的时候推荐使用SWD模式,它需要的引脚少,当然需要的PCB空间就小啦!比如你可以选择一个很小的2.54间距的5芯端子做仿真接口。 |
3. RDI接口 远程调试接口(Remote Debug Interface),是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2,IAR公司的EWARM 3.30 。 |
二、仿真器 1. ST-Link仿真器 ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM标准接口和JTAG/SWD标准接口,其主要功能有: - 编程功能:可烧写FLASH ROM、EEPROM、AFR等; - 仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等; - 仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快; - 编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快; |
产品:STLINK:STLINK-V2、STLINK-V3。 |
2. JLink仿真器 J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议。它完成了一个从软件到硬件转换的工作。 JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。 |
JLINK-V9 JLINK-V10 |
3. ULink仿真器 ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。 但是要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。 ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器,是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能,还增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG, SWD和 OCDS)、Flash编程. |
IDE/编译器:RealView® MDK,µVisiion®;调试器:U-LINK2®,U-LINK® PRO。 |
野火Fire-Debugger(高速版) 野火Fire-Debugger(普通版)
开源CMSIS-DAP仿真器
各自芯片的仿真器‘
ST-LINK NXP LPC-LINK
注: - 现在有些开发板自带仿真器
参考: 1. 谈谈单片机常用调试的接口:SWD、JTAG、Jlink、Ulink、STlink 2. JLink、STLink、DAPLink、CMSIS DAP使用区别
三、处理器
1、CPU (Central Processing Unit) CPU是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。它与内部存储器和输入/输出设备合称电子计算机三大核心部件;
2、MPU (Micro Processor Unit) 又称微处理器(不是微控制器),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。Intel X86,ARM的一些Cortex-A芯片如飞思卡尔i.MX6、全志A20、TI AM335X等都属于MPU。
3、MCU(Micro Control Unit): 中文为微控制单元,又称单片微型计算机或者单片机。是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的芯片,比如51,AVR、Cortex-M这些芯片,内部除了CPU外还有RAM、ROM,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。
4、SOC(System on Chip): 指的是片上系统,MCU只是芯片级的芯片,而SOC是系统级的芯片,它既MCU那样有内置RAM、ROM同时又像MPU那样强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(将就认为是MCU集成化与MPU强处理力各优点二合一)。
参考: 1. SoC和MCU的区别 2. cpu和mcu的区别是什么
四、EDA Electronic design automation,电子设计自动化。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VerilogHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 EDA设计可分为系统级、电路级和物理实现级。 EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。 目前进入我国并具有广泛影响的EDA软件是系统设计辅助类软件和可编程芯片辅助设计软件:Protel、Altium Designer、PSPICE、multisim12(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。
五、串口通讯
Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。
Keil公司2005年由ARM公司收购。其两家公司分别更名为ARM Germany GmbH和ARM Inc。
uVision是KEIL公司开发的一个集成开发环境(IDE),和Eclipse类似。它包括工程管理,源代码编辑,编译设置,下载调试和模拟仿真等功能,uVision有uVision2、uVision3、uVision4、uVision5四个版本,目前最新的版本是uVision5。它提供一个环境,让开发者易于操作,可编译。uVisionu通用于KEIL的开发工具中,例如MDK,PK51,PK166,DK251等。
目前Keil有四种产品(软件):MDK-ARM 1、C51、C251、C166。四种软件都是基于µVision,在用法上极为相似。
七、Keil科普教程
Keil是一家公司的名称,也是一款IDE软件。 Keil→8051 微控制器的C编译器;→工具套件:编译器、宏汇编器、链接器、调试器;→Keil C51集成开发环境。 2005年被ARM公司收购之前推出了uVision 1 和uVision 2两大版本IDE。uVision是Keil IDE的统称(包含MDK、C51、C166、C251等)。 2006年uVision 3(Keil C51 V8.00;Keil C166 V5.00;Keil C251 V4.00;RealView MDK V3.00)。注意这里的RealView MDK就是Keil MDK,只是称呼不同而已。 2009年uVision 4(Keil C51 V9.00;Keil C166 V6.00;Keil C251 V5.00;Keil MDK V4.00)。 2013年uVision 5(Keil C51 V9.53;Keil C166 V7.00;Keil C251 V5.59;Keil MDK V5.00)。 目前Keil主要更新MDK,其它三款IDE基本不更新了。
Keil MDK,其它称呼:RealView MDK(早期),Keil for ARM,Keil for MDK,Keil MDK,Keil MDK-ARM Keil C51,其它称呼:Keil PK51(早期),Keil C51,Keil for C51 Keil C166,其它称呼:Keil PK166(早期),Keil C166,Keil for C166 Keil C251,其它称呼:Keil DK251(早期),Keil C251,Keil for C251
Keil uVision 是Keil公司开发的一套集成开发环境(IDE),和Eclipse开发工具类似,包括工程管理、源代码编辑、编译设置、模拟仿真、下载调试等众多工具为一体的软件工具。
Keil MDK,四种版本功能: MDK-Lite(免费版) MDK-Essential(基础版) MDK-Plus(增强版) MDK-Professional(专业版)
Keil MDK 和 ARM DS-5 ARM工具:SDT(Software Development Toolkit)→ADS(1999,ARM Developer Suite)→RVDS(2002,RealView Development Suite) 2005,工具分为MDK和DS-: MDK基于Keil uVision开发环境 ARM DS-5基于Eclipse 2开发环境
Keil MDK 将升级为 Keil Studio,你想要的黑色主题来了,附手把手使用教程