STM32库开发实战指南:基于STM32F103(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-15 02:57:51

点击下载

作者:刘火良,杨森

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

STM32库开发实战指南:基于STM32F103(第2版)

STM32库开发实战指南:基于STM32F103(第2版)试读:

前言

F O R E W O R D

再版说明

本书是《STM32库开发实战指南》的第2版,第1版解决了当时市面上几乎没有关于STM32库开发技术书籍的燃眉之急,并且受到了广大读者的好评。

但由于技术的革新、读者的反馈以及自身经验的积累,我们发现第1版书籍还存在一些缺陷:目前配套的硬件开发板已更新换代,部分程序已不再适用;从寄存器开发过渡到库函数开发的教学过程不够平滑;介绍STM32各种外设的深入度不足。

因此,第2版中对大部分的内容进行了改进:升级代码,匹配最新的开发板;增加了自行编写库函数的入门章节,引导读者加深对库函数原理的理解;每个章节增加了STM32外设框图剖析,增加了库函数结构体说明,使读者更了解基本原理,便于以后迁移至不同的芯片平台;以本书为教材,制作了教学课件,并录制了非常详细的教学视频,使之更适合于高校、培训机构及员工培训时使用。

本书的学习顺序

本书分为基础篇和提高篇。基础篇需要按照顺序学习,讲究循序渐进,步步为营。学习完基础篇之后,已经算是基本入门STM32开发了。提高篇属于高级例程,学习的时候并不一定要按照书中的章节排序,可根据需要跳跃式地学习。

本书的编写风格

本书着重讲解STM32F103的外设以及外设的应用,力争全面分析每个外设的功能框图和外设的使用方法,让读者可以全面、细致地掌握STM32F103系列芯片。基本每个章节对应一个外设,每章的主要内容大致分为3个部分:第1部分为简介,第2部分为外设功能框图分析,第3部分为代码讲解。

外设简介是作者用自己的话把外设概括性地介绍一遍,力图语句简短,通俗易懂,并不会完全照抄数据手册的介绍。

外设功能框图分析则是每章的重点,该部分会详细讲解功能框图中每个部分的作用,这是学习STM32F103的精髓所在,掌握了整个外设的框图则可以熟练地使用该外设,进而熟练地编程,日后学习其他型号的单片机也将会得心应手。因为即使单片机的型号不同,外设的框图也是基本一样的。这一步的学习比较枯燥,但是必须下功夫学,方能达成所愿。

代码分析则是针对使用该外设的实验进行讲解,主要分析代码流程和一些编程的注意事项。在掌握了框图之后,代码部分则是手到擒来。

本书的参考资料

本书的主要参考资料为:《STM32F10x-中文参考手册》《STM32F10x-数据手册》以及《Cortex-M3权威指南》。它们是ST及ARM官方的资料,属于精华版,全面翔实,无所不包。限于篇幅问题,本书不可能面面俱到,只侧重于框图分析和代码讲解,有关寄存器的详细描述则略过。在学习本书的时候,涉及寄存器描述部分还请参考上述两本手册,这样学习效果会更佳。

本书的配套资料

硬件平台

本书配套的硬件平台为:秉火STM32F103-指南者,型号简称为“指南者”,见图1。学习的时候如果基于该硬件平台做实验,必会达到事半功倍的效果,可以省去中间移植时遇到的各种问题。图1 秉火STM32F103-指南者

工程代码、原理图及课件

本书中涉及的工程代码、开发板原理图以及课件均在秉火论坛提供:http://www.firebbs.cn。

部分章节涉及的各种通信协议、字符编码以及芯片的数据手册均2有相应的参考资料,如《IC总线协议》《SPI总线协议》和《AT24C02》(EEPROM数据手册)等电子文档,也包含在相应章节的课件文件夹中。在阅读本书时请一定打开这些资料来配合阅读,特别是涉及通信协议的章节。

教学视频

为提高学习效率,我们为本书制作了配套的课件PPT以及教学视频,请到论坛http://www.firebbs.cn上观看或下载。

本书的技术论坛

如果在学习过程中遇到问题,可以到论坛http://www.firebbs.cn上发帖交流,开源共享,共同进步。

鉴于水平有限,本书难免有纰漏,热心的读者也可把勘误发到论坛上,好让我们的技术不断完善,做得更好。祝广大读者学习愉快,STM32的世界中,秉火与您同行!▶▶第一部分基础篇

基础篇可以帮助初学者快速掌握STM32开发技术,写出自己的应用程序。其中包含如何搭建开发环境,如何使用寄存器、固件库点2亮LED,如何使用STM32主要片上外设,并介绍常用的USART、IC和SPI通信协议,以及如何使用EEPROM、Flash等存储器存储数据。

以点亮LED灯的教程为例,从原始的寄存器操作入手,逐渐搭建库函数雏形。从软件工程的角度深入剖析什么是固件库,为什么使用固件库和怎样使用固件库;从STM32新建工程、编译下载程序出发,介绍如何操作GPIO,让新手由浅入深,尽享STM32的学习乐趣。

基础篇需要按照顺序学习,讲究循序渐进,细致扎实。学习完基础篇之后,就可以说是基本上对STM32开发入门了。

我们对初学者的要求是具有基本的C语言基础,但不一定精通。读者在学习STM32的时候,无须担心自己的基础,我们更需要的是学习的勇气,需要的是真正学会STM32的决心。试问,我们刚开始学习最简单的C语言的时候,是不是也没基础呢?是不是因此就停止自己的学习脚步了呢?不是的。我们需要做的是认定一个目标,行动起来,坚持朝着目标努力,其中艰辛芳华,唯你自知。第1章 如何安装KEIL51.1 温馨提示

1)安装路径名中不能带中文,必须是英文路径名。

2)安装目录不能与51单片机的KEIL或者KEIL4冲突,三者目录必须分开。

3)KEIL5的安装比KEIL4多一个步骤,必须添加MCU库,不然没法使用。

4)如果使用的时候出现莫名其妙的错误,先在百度网站上查找解决方法,一般都能找到。1.2 获取KEIL5安装包

要想获得KEIL5的安装包,可以到KEIL的官网下载:https://www.keil.com/download/product/,注册之后即可下载。我们这里的KEIL5版本是MDK5.16a,见图1-1。以后有新版本大家可使用更高版本。图1-1 KEIL官网中的MDK下载页面1.3 开始安装KEIL5

下载好安装文件后,双击KEIL5的安装包,在弹出的对话框中点击Next按钮开始安装,见图1-2。图1-2 安装初始界面

勾选同意软件使用条款复选框,点击Next按钮,见图1-3。图1-3 软件使用条款

选择安装路径,路径名中不能带中文,单击Next按钮,见图1-4。

填写用户信息,全部填空格(按键盘的Space键)即可,单击Next按钮,见图1-5。

单击Finish按钮,安装完成,见图1-6。图1-4 选择安装路径图1-5 填写用户信息图1-6 安装完成1.4 安装STM32芯片包

KEIL5不像KEIL4那样自带了很多厂商的MCU型号,而是需要自己安装。

关掉弹出的界面,见图1-7。我们直接去KEIL的官网下载:http://www.keil.com/dd2/pack/,或者直接用我们下载好的包。图1-7 MDK中的芯片包安装界面

在官网中找到STM32F1、STM32F4、STM32F7这3个系列的包,下载到本地电脑中,具体下载哪个系列要根据你使用的型号。这里只下载需要使用的F1、F4、F7这3个系列的包,F1代表M3,F4代表M4,F7代表M7,见图1-8。图1-8 在官网下载芯片包

双击下载好的包安装即可,选择与KEIL5一样的安装路径。安装成功之后,在KEIL5的Pack Installer中就可以看到所安装的包,见图1-9。以后新建工程的时候,就有单片机的型号可选。图1-9 芯片包安装完成后的界面第2章 如何用DAP仿真器下载程序2.1 仿真器简介

本书配套的仿真器为Fire-Debugger,它遵循ARM公司的CMSIS-DAP标准,支持所有基于Cortex-M内核的单片机,对常见的M3、M4和M7都可以提供完美支持。

Fire-Debugger支持下载和在线仿真程序,支持Windows XP/7/8/10这4个操作系统,并且不需要安装驱动即可使用,支持KEIL和IAR直接下载,非常方便。2.2 硬件连接

把仿真器用USB线连接至电脑,如果仿真器的灯亮则表示正常,可以使用。再把仿真器的另外一端连接到开发板,给开发板上电,就可以通过软件KEIL或者IAR给开发板下载程序,见图2-1。仿真器与指南者连接图见图2-2,与霸道连接图见图2-3。图2-1 仿真器与电脑和开发板连接方式图2-2 仿真器与指南者连接图图2-3 仿真器与霸道连接图2.3 仿真器配置

在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,具体步骤如下:

1)配置Debug选项,见图2-4。图2-4 Debug选项

2)配置Utilities选项,见图2-5。图2-5 Utilities选项

3)配置Debug Settings选项,见图2-6。图2-6 Debug Settings选项2.4 选择目标板

选择目标板,具体选择多大的Flash要根据板子上的芯片型号决定。秉火STM32开发板的配置是:F1选512K,F4选1M。这里面有个小技巧就是勾选Reset and Run复选框,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的Flash大小选择Sectors即可,不要选择Full Chip,会非常慢。具体选项见图2-7。图2-7 选择目标板2.5 下载程序

如果前面的步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程序不需要其他额外的软件,直接单击KEIL中的LOAD按钮即可,见图2-8。图2-8 单击LOAD按钮

程序下载后,Build Output窗格中如果显示“Application running...”,则表示程序下载成功,见图2-9。如果没有出现实验现象,可按复位键试试。图2-9 程序下载成功第3章 如何用串口下载程序

秉火STM32F103VET6(指南者)自带串口下载电路,配合上位机可实现一键ISP下载,不需要修改开发板上的BOOT设置。与仿真器Fire-Debugger相比,ISP(In-System Programming,在系统可编程)只能下载程序,不能在线调试且下载速度慢。3.1 安装USB转串口驱动

秉火的STM32开发板用的USB转串口的驱动芯片是CH340,要使用串口,需要先在电脑中安装USB转串口驱动:CH340版本,见图3-1。驱动可在网上搜索下载,或者使用我们论坛里面提供的。Windows 7用户请用管理员身份安装。如果不能安装成功,上网查找原因自行解决。图3-1 串口连接示意图

如果USB转串口驱动安装成功,USB线与板子连接没有问题,依次选择“计算机→管理→设备管理器→端口”,可识别到串口。

如果识别不了串口,请检查USB线是否完好,或换一根USB线试试。3.2 硬件连接

如图3-2所示,用USB线连接电脑和开发板的“USB转串口”接口,给开发板上电(见图3-3)。图3-2 USB转串口驱动安装成功图3-3 指南者串口连接图3.3 开始下载

打开mcuisp软件,配置如下:①选择“搜索串口”,设置波特率为460800(尽量不要设置得太高);②选择要下载的HEX文件;③勾选“校验”“编程后执行”复选框;④选择“DTR低电平复位,RTS高电平进BootLoader”选项;⑤开始编程,见图3-4。如果出现一直连接的情况,按一下开发板上的复位键即可。下载成功界面见图3-5。图3-4 ISP下载配置图3-5 ISP下载成功3.4 ISP一键下载原理分析

3.4.1 ISP简介

ISP指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。已经编程的器件也可以用ISP方式擦除或再编程。

使用ISP的时候需要用到自举程序(BootLoader),自举程序存储在STM32器件的内部自举ROM(系统存储器)中。其主要任务是2通过一种可用的串行外设(USART、CAN、USB、IC等)将应用程序下载到内部Flash存储器中。每种串行接口都定义了相应的通信协议,其中包含兼容的命令集和序列。

3.4.2 ISP普通下载

现在我们针对USART1的ISP进行分析,通常的ISP下载的步骤如下:

1)通过USB转串口线将电脑连接到STM32的USART1,并打开电脑端的上位机;

2)设置跳线保持BOOT0为高电平,BOOT1为低电平;

3)复位单片机使其进入BootLoader模式,通过上位机下载程序;

4)下载完毕,设置跳线保持BOOT0为低电平,BOOT1为低电平;

5)复位单片机即可启动用户代码,正常运行。

以上步骤有个不好的地方就是:下载程序需要跳线及复位操作,很繁琐。理解了ISP的原理,就理解一键ISP了。它需要做的事情就是用上位机去控制BOOT0引脚和单片机的复位引脚,电路图见图3-6。图3-6 ISP一键下载电路图图3-6 (续)

3.4.3 BOOT配置

在ISP下载电路中,需要配置BOOT引脚,BOOT引脚不同的配置会产生不同的启动方式,具体见表3-1。表3-1 BOOT配置

3.4.4 ISP一键下载

USB转串口大家都很熟悉,一般是用RXD和TXD这两个引脚。在一键ISP电路中,我们需要用USB转串口的芯片的DTR引脚和RTS引脚来控制单片机的BOOT0和NRST,原理如下:

1)通过上位机控制U6(CH340G)的RTS引脚为低电平,Q1导通,BOOT0的电平上拉为高电平。

2)通过上位机控制U6(CH340G)的DTR引脚为高电平,由于RTS为低电平,Q2导通,U8的2引脚为低电平,U18为一个模拟开关,使能端由4引脚控制,默认为高电平,U18的1引脚和2引脚导通,所以NRST为低电平,系统复位。

3)单片机进入ISP模式,此时可以将DTR引脚设置为低电平,RTS设置为高电平。Q1和Q2处于截止状态,BOOT0和NRST还原默认电平。

4)上位机将程序下载到单片机,下载完毕之后,程序自动运行。

5)有人认为U18、Q1、Q2是多余的,用U6的RTS和DTR直接控制也可以。正常情况下,这样理解没有问题,但是他们忽略了一点,就是在单片机上电瞬间,如果USB转串口连接了电脑,DTR和RTS的电平是变化的,如果处理不好,单片机会一直进入ISP模式,或者系统会复位多次,这种情况是不允许的。

6)于是,就有了全新的一键ISP电路。我们主要是分析上电瞬间的逻辑关系,单片机上电时通过示波器观察波形得知DTR和RTS的电平是变化的,但是也有一个规律就是:当RTS为低电平的时候,DTR也是低电平,因此一般情况下Q2不会导通,但由于这两个IO口的电平存在“竞争冒险”,会出现RTS的下降沿刚好遇到DTR的上升沿,这个时候Q2导通,导致系统复位,而BOOT0此时有可能也为高电平,就会进入ISP模式。这个是不受我们控制的,而我们不想系统出现这样的情况,因此加入了模拟开关来切断这种干扰。

7)加入模拟开关U18,通过控制U18的4引脚的开关来达到隔离干扰电平的目的。下面我们分析一下延时开关电路,上电瞬间,电容C65通过电阻R18来充电,由于电阻100kΩ很大,电容的充电电流很小,电容充电达到U18的4引脚的有效电平2V大概耗时1秒,在这个1秒时间内U18的模拟开关是断开的,因此RTS和DTR的干扰电平不会影响到系统复位。这样就保证了系统正常运行。第4章 初识STM324.1 什么是STM32

STM32,从字面上来理解,ST是指意法半导体公司,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的32位控制器当中,STM32可以说是最璀璨的新星,它深受工程师和市场的青睐,无其他芯片能出其右。

STM32诞生的背景

51单片机是嵌入式学习中一款入门级的经典MCU,因其结构简单,易于教学,且可以通过串口编程而不需要额外的仿真器,所以在单片机教学中被大量采用,至今很多大学在嵌入式教学中用的还是51单片机。它诞生于20世纪70年代,属于传统的8位单片机,如今,久经岁月的洗礼,既有其辉煌又有其不足。现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对MCU的性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。面对这些要求,51单片机现有的资源就显得得力不从心。所以无论是高校教学还是市场需求,都急需一款新的MCU来为这个领域注入新的活力。

基于这样的市场需求,ARM公司推出了其全新的基于ARMv7架构的32位Cortex-M3微控制器内核。紧随其后,ST公司推出了基Cortex-M3内核的MCU-STM32。STM32凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多Cortex-M3 MCU中脱颖而出,成为最闪亮的一颗新星。STM32一上市就迅速占领了中低端MCU市场,受到了市场和开发人员的无比青睐,颇有星火燎原之势。

作为一名合格的嵌入式工程师,面对新出现的技术,我们不是充耳不闻,而是要尽快契合市场的需要,跟上技术的发展潮流。如今STM32的出现就是一种趋势,一种潮流,我们要做的就是搭上这趟快车,让自己的技术更有竞争力。4.2 STM32能做什么

STM32属于一个微控制器,自带了各种常用通信接口,比如2USART、IC、SPI等,可连接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品中都有STM32的身影,比如智能手环、微型四轴飞行器、平衡车、移动POST机、智能电饭锅、3D打印机等。下面我们以近两年最为火爆的两个产品来讲解下:一个是手环,一个是飞行器。

4.2.1 智能手环

三星GearFit智能手环见图4-1。图4-1 三星GearFit智能手环

①STM32F439ZIY6S处理器,2048kB Flash,256kB RAM,WLCSP143封装。

②Macronix MX69V28F6416MB闪存,基于MCP封装的存储器,是一种包含了NOR和SRAM的闪存,在手环、手机这种移动设备中经常使用,其优点是体积小,可以减小PCB的尺寸。这个闪存用439的FSMC接口驱动。2

③InvenSense MPU-6050陀螺仪/加速度计,用439的IC接口驱动。

④博通BCM4334WKUBG芯片,支持802.11n,蓝牙4.0+HS以及FM接收芯片,用439的SDIO或者SPI接口驱动。

⑤1.84"可弯曲屏幕(Super AMOLED),432×128像素。触摸部2分用439的IC接口驱动,OLED显示部分用LTDC接口驱动。

三星GearFit和秉火STM32F103资源对比见表4-1。表4-1 三星GearFit和秉火STM32F103资源对比

除了这几个重要资源以外,STM32F103指南者开发板上还板载了EEPROM、USB转串口、蜂鸣器、LED、普通按键、电容按键等外设资源,还可以扩展VS1053 MP3模块、W5500以太网模块,利用这些可以更充分地学习STM32F103VET6这个芯片。在板子上面,还可以运行系统μcosiii,学习图形界面emwin,见图4-2。如果功夫所至,学完之后,甚至可以自己做一个类似GearFit这样的手环。可很多人

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载