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

作者:刘火良,杨森

出版社:机械工业出版社

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

STM32库开发实战指南:基于STM32F4

STM32库开发实战指南:基于STM32F4试读:

前言

本书的编写风格

本书着重讲解STM32F429的外设以及外设的应用,力争全面分析每个外设的功能框图和使用方法,让读者可以零死角地玩转STM32F429。

基本每个章节对应一个外设,每章的主要内容大概分为3个部分,第1部分为简介,第2部分为外设功能框图分析,第3部分为代码讲解。

外设简介则是用作者自己的话把外设概括性地介绍一遍,力求语句简短,通俗易懂,避免照抄数据手册中的介绍。

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

代码分析则是讲解使用该外设的实验过程,主要分析代码流程和一些编程注意事项。在掌握了框图之后,学习代码部分则会轻而易举。本书的学习方法

本书第3~11章连贯性非常强,属于单片机底层知识的讲解,对后面章节的学习起着“千斤顶”的作用,读者需要按照顺序学习,不可跳跃阅读。学完这部分之后,能力稍强的用户基本可以入门STM32。其余章节连贯性较弱,可根据项目需要选择阅读。另外本书配套200集手把手教学视频和大量的PPT,观看视频辅助学习,效[1]果会更佳。相关视频请到秉火论坛下载。本书的参考资料

本书的参考资料为《STM32F4xx中文参考手册》和《Cortex-M4内核参考手册》,这两本是ST官方的手册,属于精华版,内容面面俱到,无所不包。限于篇幅问题,本书着重于STM32F429的功能框图分析和代码讲解,有关寄存器的详细描述则略过,在学习本书的时候,涉及寄存器描述部分还请参考上述两本手册,这样学习效果会更佳。本书的配套硬件和程序

本书配套的硬件平台为秉火STM32F429挑战者开发板,见图0-1。如果配合该硬件平台做实验,必会达到事半功倍的学习效果,省去中间移植时遇到的各种问题。书中提到的配套工程程序可以在秉火论坛(www.ffirebbs.cn)下载。本书的技术论坛

如果在学习过程中遇到问题,可以到秉火论坛(www.ffirebbs.cn)发帖交流,开源共享,共同进步。

鉴于作者水平有限,本书难免存在纰漏,热心的读者也可把勘误发到论坛,以便我们改进。祝你学习愉快!M4的世界,秉火与您同行!图0-1 秉火STM32F429挑战者硬件资源图0-1 (续)

[1] www.f irebbs.cn第1章如何安装KEIL51.1 温馨提示

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

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

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

4)如果使用的时候出现莫名其妙的错误,可先上相关网站查找解决方法,不要急于处理。1.2 获取KEIL5安装包

要想获得KEIL5的安装包,在互联网上搜索“KEIL5下载”即可找到很多网友提供的下载文件,或者到KEIL的官网https://www.keil.com/download/product/下载。本书使用的KEIL5的版本是MDK 5.15,若有新版本,读者可使用更高版本,见图1-1。图1-1 KEIL官网页面1.3 开始安装KEIL5

双击KEIL5安装包,开始安装,单击Next按钮,如图1-2所示。图1-2 开始安装

勾选同意协议,单击Next按钮,见图1-3。图1-3 同意协议

选择安装路径,路径名中不能有中文,单击Next按钮,如图1-4所示。图1-4 选择安装路径

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

单击Finish按钮,安装完毕,见图1-6。图1-6 安装完毕1.4 安装STM32芯片包

KEIL5不像KEIL4那样自带了很多厂商的MCU型号,而是需要自己安装。把图1-7中弹出的对话框关掉,直接去KEIL的官网http://www.keil.com/dd2/pack/下载,或者直接用已下载好的包。图1-7 关闭弹出的对话框

在官网上找到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内核的单片机,常见的M3、M4和M7都可以完美支持,其外观见图2-1。图2-1 仿真器外观

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

把仿真器用USB连接到电脑,如果仿真器的灯亮,则表示正常,可以使用。然后把仿真器的另外一端连接到开发板,给开发板上电,接着就可以通过软件KEIL或者IAR给开发板下载程序。仿真器与电脑和开发板的连接方式示意图如图2-2所示。图2-2 仿真器与电脑和开发板的连接方式2.3 仿真器配置

在将仿真器与电脑和开发板连接好且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,然后进行以下配置。

1)Debug选项配置,见图2-3。图2-3 选择CMSIS-DAP Debugger

2)Utilities选项配置,见图2-4。图2-4 选择Use Debug Driver

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

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

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

程序下载后,Build Output选项卡上如果打印出“Application running…”,则表示程序下载成功,见图2-8。如果没有出现这一现象,可按复位键试试。图2-8 程序下载成功第3章初识STM323.1 什么是STM32

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

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

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

作为一名合格的嵌入式工程师,面对新出现的技术,不能漠不关心,而是要尽快学习,跟上技术的潮流。如今STM32的出现就是一种趋势,一种潮流,我们要做的就是搭上这趟快车,让自己的技术更有竞争力。3.2 STM32能做什么

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

三星智能手环如图3-1所示。

①红框:STM32F439ZIY6S处理器,2048KB闪存,256KB RAM,WLCSP143封装。

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

③黄框:InvenSense MPU-6500陀螺仪/加速度计,用439的I2C接口驱动。

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

其显示采用1.84英寸可弯曲屏幕(Super AMOLED),432×1282像素。触摸部分用439的IC接口驱动,OLED显示部分用LTDC接口驱动。图3-1 三星Gear Fit智能手环

三星Gear Fit和秉火STM32F429挑战者资源对比见表3-1。表3-1 三星Gear Fit和秉火STM32F429挑战者资源对比

除了这几个重要资源的对比,STM32F429(也被称为F429)开发板上还集成了以太网、音频、CAN、485、232、USB转串口、蜂鸣器、LED、电容按键等外设资源。在板子上面,还可以运行系统μcosiii、学习图形界面emwin,见图3-2。如果功夫所至,学完之后,自己也可以做一个类似Gear Fit这样的手环。可能很多人会说,Gear Fit涉及硬件和软件,整个系统较为复杂,并不是一个人可以完成的。说的没错,我们或许做不了,但还是应该多学点,技多不压身。图3-2 在μcosiii上使用emwin做的系统界面(F429开发板的开机界面)

[1] 1英寸=25.4mm。——编辑注3.2.2 微型四轴飞行器

现在无人机非常流行,高端的无人机用STM32做不了,但是微型的四轴飞行器用STM32做还是绰绰有余的。如图3-3所示的飞行器基本上都可以用STM32制作。图3-3 微型四轴飞行器

如果你想自己动手制作一个简易的飞行器,可以在掌握了STM32的用法之后,买一本飞行器DIY的书,边学边做。入门级的书籍可推荐《四轴飞行器DIY——基于STM32微控制器》。3.2.3 淘宝众筹

学会了STM32的使用后,想自己做产品,这要如何实现呢?可采取淘宝众筹的方式。先做出产品原型,然后用别人的钱为自己的梦想“买单”。

淘宝众筹https://izhongchou.taobao.com/index.htm科技类项目(见图3-4)中有很多小玩意都可以用STM32实现,只要你有创意,就会有人投资,但前提是要先学会STM32。图3-4 淘宝众筹科技类项目网页3.3 STM32选型3.3.1 STM32分类

STM32有很多系列,可以满足市场的各种需求。从内核上分,有Cortex-M0、M3、M4和M7,每个内核又可分为主流、高性能和低功耗等,具体见表3-2。表3-2 STM8和STM32分类

单纯从学习的角度出发,可以选择F1和F4系列。F1代表了基础型,基于Cortex-M3内核,主频为72MHz;F4代表了高性能,基于Cortex-M4内核,主频180MHz。

与F1相比,F4(429系列以上)除了内核不同且主频有提升外,更高级的特点是带了LCD控制器和摄像头接口,支持SDRAM,这个区别在STM32选型上会被优先考虑。3.3.2 STM32命名方法

这里我们以秉火F429挑战者所用的型号STM32F429IGT6来说明一下STM32的命名方法,见表3-3。表3-3 STM32F429IGT6命名说明

更详细的命名方法见图3-5,摘自《STM8和STM32选型手册》。图3-5 STM8和STM32的命名方法3.3.3 选择合适的MCU

了解了STM32的分类和命名方法之后,就可以根据项目的具体需求选择内核的MCU,如果是普通应用,不需要接大屏幕,一般选择Cortex-M3内核的F1系列;如果追求高性能,需要大量的数据运算,且需要外接RGB大屏幕,则选择Cortex-M4内核的F429系列。

明确了大方向之后,接下来就是细分选型。先确定引脚,引脚多的功能就多,价格也贵,具体得根据实际项目中需要使用的功能选择。确定好了引脚数目之后再选择闪存大小,相同引脚数的MCU会有不同大小的闪存可供选择,这个也要参考实际需要,代码量大的就选择大点的闪存,产品一量产后可省下不少钱。有些月出货量以KK(百万数量级)为单位的产品,不仅是MCU,连电阻、电容都要精打细算,甚至连PCB的过孔的多少都要计算。在项目中元器件的选型有很多学问值得研究。1.如何分配原理图上的IO引脚

在画原理图之前,一般的做法是先把IO引脚分类好。IO引脚分类见表3-4。表3-4 画原理图时的IO引脚分类

①由上面5部分IO组成的系统称作最小系统。2.如何寻找IO的功能说明

要想根据功能来分配IO,就得先知道每个IO的功能说明,这可以从官方的数据手册里面找到。在学习的时候,会经常用到两个官方资料,一个是参考手册(Reference Manual),另外一个是数据手册(Data Sheet)。两者的具体区别见表3-5。表3-5 参考手册和数据手册的内容区别

一句话概括:数据手册主要用于芯片选型和设计原理图,参考手册主要用于编程。这两个文档可以从官方网址下载:http://www.stmcu.org/document/list/index/category-150。

在数据手册中,有关引脚定义的部分在“Pinouts and pin description”这一节中,具体定义见表3-6,具体说明见表3-7。表3-6 数据手册中的引脚定义

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

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?