热搜关键词: MATLAB天线OpenCVVHDL

pdf

STM32单片机应用与全案例实践

  • 1星
  • 2022-06-28
  • 27.97MB
  • 需要1积分
  • 26次下载
  • favicon收藏
  • rep举报
  • free评论
标签: 单片机

单片机

嵌入式

嵌入式

本书涵盖了基于ARM的STM32系统的基本概念、基本原理、应用技术。硬件原理的阐述以\"\"够用、适用、易学”为原则,降低读者入门和理解的难度。STM32的软件设计基于固件库,方便读者上手。  本书在内容组织和框架设计上具有两个鲜明特点:全案例、基于读者学习。从读者学习的角度,组织每个章节的内容体系,对STM32常用的典型外设模块的原理及其应用设计均以若干个完整案例呈现,同时也给出了一个完整的综合性工程案例,这些都十分有利于学习者学习和模仿。  本书可作为计算机、电子、通信、机电、自动化及其相关专业的本、专科学生及研究生的教材,也可作为从事检测、自动控制等领域工作的嵌入式系统开发的工程技术人员的参考用书。

第1章  如何学习STM32  (1)

1.1  学习STM32必须具备的知识基础  (1)

1.2  STM32的基本架构和基本原理  (2)

1.2.1  什么是ARM  (2)

1.2.2  什么是STM32  (3)

1.2.3  STM32的内部结构  (3)

1.2.4  典型型号—STM32F103ZET6  (5)

1.2.5  STM32的时钟树  (5)

1.3  学习STM32的最好方法是什么  (9)

1.4  学习STM32需要哪些工具或平台  (9)

1.4.1  硬件平台  (10)

1.4.2  软件平台  (11)

1.5  STM32程序开发的模式  (12)

1.5.1  基于寄存器的开发模式  (13)

1.5.2  基于ST固件库的开发模式  (20)

1.5.3  基于操作系统的开发模式  (26)

1.5.4  三种编程模式的选用建议  (27)

思考题  (27)

第2章  如何调试STM32  (28)

2.1  STM32单片机的最小系统  (28)

2.2  STM32工程模板的建立  (30)

2.2.1  STM32的固件库(Standard  Peripherals  Library)  (30)

2.2.2  新建工程模板第一步—拷贝固件库文件  (34)

2.2.3  新建工程模板第二步—新建一个KEIL工程  (35)

2.2.4  关于创建工程模板的简单小结  (41)

2.3  程序的烧写  (42)

2.3.1  基于串口的程序下载(烧写)方式  (42)

2.3.2  基于JTAG(SWD)的程序下载(烧写)方式  (44)

2.4  程序的调试  (46)

2.5  模板的使用  (48)

2.6  三个GPIO输出的范例—STM32中实现  延时的三种常用方法  (48)

2.6.1  我的第一个LED工程—基于延时函数的延时  (48)

2.6.2  我的第二个LED工程—SysTick中断延时  (50)

2.6.3  我的第3个工程—定时器中断延时  (52)

2.7  GPIO口的各种输出方式及其应用  (55)

2.7.1  功能要求  (55)

2.7.2  程序实现  (56)

2.8  本章小结  (58)

思考题  (59)

第3章  GPIO及其应用—输入  (60)

3.1  单功能按键输入  (60)

3.1.1  实现思想  (60)

3.1.2  具体程序  (61)

3.2  复用功能按键输入  (64)

3.2.1  按键复用的基本概念  (64)

3.2.2  程序实现举例  (64)

3.3  非按键类开关信号输入及其实现  (67)

3.3.1  GPIO的输入方式及其特点  (67)

3.3.2  程序实现  (68)

3.4  GPIO输入输出小结  (69)

思考题  (70)

第4章  TIMER与PWM  (71)

4.1  关于STM32的定时器概述  (71)

4.2  STM32定时器的简单应用  (72)

4.2.1  按周期输出方波的例子  (72)

4.2.2  实现原理  (72)

4.2.3  具体程序  (72)

4.3  STM32定时器的复杂应用—检测输入方波的频率  (77)

4.3.1  STM32定时器的其他特性  (77)

4.3.2  本例设计要求  (78)

4.3.3  硬件接口设计与测量原理  (79)

4.3.4  具体程序  (79)

4.4  PWM原理及其应用一—一个LED呼吸灯的实现  (84)

4.4.1  PWM的基本概念及其基本应用  (84)

4.4.2  STM32的PWM的实现原理  (84)

4.4.3  基于PWM的LED呼吸灯的实现思路  (88)

4.4.4  呼吸灯的实现程序  (89)

4.5  PWM原理及其应用二—通过L298N控制电机转速  (96)

4.5.1  硬件设计  (96)

4.5.2  直流电机调速与调向的原理  (97)

4.5.3  程序实现  (97)

思考题  (104)

第5章  USART及其应用  (105)

5.1  串行通信模块USART的基本应用要点  (105)

5.1.1  STM32的USART及其基本特性  (105)

5.1.2  STM32的USART应用的基本要领  (106)

5.2  一个USART的通信实现(STM32与PC)—查询法  (107)

5.2.1  功能要求  (107)

5.2.2  实现难点  (108)

5.2.3  程序实现  (108)

5.2.4  USART应用的有关事项  (114)

5.3  一个USART的通信实现(STM32与PC)—中断法  (115)

5.3.1  功能要求及通信协议设计  (115)

5.3.2  程序算法  (115)

5.3.3  本例的源程序  (116)

5.4  两个USART的通信实现  (124)

5.4.1  功能要求与通信协议  (124)

5.4.2  接口设计  (124)

5.4.3  程序实现  (125)

5.5  USART应用小结  (139)

思考题  (141)

第6章  人机界面—按键输入与液晶显示  (142)

6.1  STM32与液晶模块12864的接口实现  (142)

6.1.1  STM32与液晶模块12864的接口实现—延时法  (142)

6.1.2  STM32与液晶模块12864的接口实现—查询“忙”状态  (153)

6.2  基于液晶模块12864的菜单实现  (173)

6.2.1  程序中菜单的种类与菜单化程序的优势  (173)

6.2.2  基于液晶模块12864的菜单实现实例  (173)

6.3  矩阵键盘的接口实现  (186)

6.3.1  矩阵键盘的应用与程序设计思想  (186)

6.3.2  4×4矩阵键盘的硬件设计  (186)

6.3.3  演示程序  (187)

6.4  本章小结  (198)

思考题  (199)

第7章  同步串行接口总线SPI与I2C  (200)

7.1  STM32的SPI  (200)

7.1.1  SPI概述  (200)

7.1.2  STM32之SPI总线的应用要点  (201)

7.2  SPI的接口应用及其实现  (202)

7.2.1  STM32与OLED12864液晶模块的SPI接口  (202)

7.2.2  STM32的SPI1与OLED12864的接口程序  (203)

7.3  STM32的I2C总线  (223)

7.3.1  I2C总线的基本概念  (223)

7.3.2  STM32的I2C总线应用要领  (226)

7.4  STM32的I2C总线的应用举例  (227)

7.4.1  具有I2C接口的DS3231时钟模块  (227)

7.4.2  STM32与DS3231时钟模块的硬件接口  (229)

7.4.3  STM32与DS3231的软件接口及其演示实例  (229)

7.5  I2C总线稳健性设计  (247)

思考题  (247)

第8章  ADC、DAC与DMA及其应用  (248)

8.1  STM32的DMA  (248)

8.1.1  STM32的DMA及其基本特性  (248)

8.1.2  STM32的DMA原理及其配置要点  (249)

8.2  STM32的ADC  (251)

8.2.1  STM32的ADC的基本特性  (251)

8.2.2  STM32的ADC的程序流程与编程要点  (253)

8.3  一个三通道A/D转换的范例  (254)

8.3.1  功能要求与方案设计  (254)

8.3.2  实现程序  (256)

8.3.3  本例的中断法实现  (263)

8.4  STM32的DAC  (266)

8.4.1  DAC概述  (266)

8.4.2  DAC的配置要领  (266)

8.4.3  DAC应用实例  (268)

思考题  (277)

第9章  工程实例—基于线性CCD的小车循迹系统  (278)

9.1  系统要求  (278)

9.2  线性CCD的原理及其使用  (278)

9.2.1  线性CCD传感器原理  (279)

9.2.2  线性CCD传感器应用  (280)

9.2.3  硬件接口  (281)

9.3  自适应曝光的算法设计  (281)

9.3.1  自适应曝光算法  (281)

9.3.2  模块化架构  (283)

9.4  具体程序  (285)

9.4.1  工程文件视图—文件结构  (285)

9.4.2  程序源代码  (286)

9.5  系统性能实测  (315)

9.5.1  系统实物与测试环境  (315)

9.5.2  系统实测结果  (316)

思考题  (318)

参考文献  (319)

本书为市级重点教材。以基于 ARM 的 STM32 单片机的基本概
念、基本原理为主线,详细阐述 STM32的学习方法与应用系统开发的
一般技术。本书在内容组织和框架设计上具有两个鲜明特点:全案
例、基于学习者学习。从学习者的角度,精心组织每个章节的内容½
系,对STM32常用的典型外设模块原理及其应用设计均以完整案例方式
呈现。配套课件逻辑严密,思路清晰,制½精良,与教材相得益½。
本书可½为计算机、电子、通信、机电、自动化及其他相关专业
的本、专科学生及研究生的教材,也可½为从事检测、自动控制等领
域的嵌入式系统开发工程技术人员的参考用书。
未经许可,不得以任½方式复制或抄袭本书之部分或全部内容。
版权所有,侵权必究。
STM32单片机应用与全案例实践 / 沈红卫等著. —北京:电子工
业出版社,2017.6
(嵌入式技术与应用丛书)
ISBN 978-7-121-31620-3
Ⅰ. ①S… Ⅱ. ①沈… Ⅲ. ①单片微型计算机 Ⅳ.①TP368.1
中½版本图书馆CIP数据核字(2017)第107707号
据数 PIC 目编版在书图
策划编辑:牛平月
责任编辑:桑昀
印刷:
装订:
出版发行:电子工业出版社
北京市海淀区万寿路173信箱 邮编 100036
介简容内
开本:787×1092 1/16 印张:21 字数:537.6千字
版次:2017年6月第1版
印次:2017年6月第1次印刷
定价:59.00元
凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。
若 书 店 售 缺 , 请 与 本 社 发 行 部 联 系 , 联 系 及 邮 购 电 话 : ( 010 )
88254888,88258888。
质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件
至dbqq@phei.com.cn。
本书咨询联系方式:(010)88254454,niupy@phei.com.cn。
嵌入式系统的发展确实超乎我们的想象。从早期的 8 ½单片机,
到目前主流的 32 ½单片机,其应用已深深渗透于生产、生活的各个
方面。½为 ARM 的一个典型系列,STM32以其较高的性½和优越的性
价比,毫无疑问地成为 32 ½单片机市场的主流。把 STM32 引入大学
的培养½系,已经成为高校广大师生的普遍共识和共同实践。
目前普遍地认为,基于ARM 的嵌入式系统不仅难教而且难学。究
其原因,无外乎三个方面:
(1)功½多导致的问题。功½多导致系统复杂,这样给理解带来
诸多困难,½得从传统的8½单片机系统½过来的学习者感觉难以适
应,因为传统的8½单片机,例如51单片机,功½相对单一,结构原理
也相对简单。
(2)芯片系列多导致的问题。由于基于 ARM 的单片机系列较
多,功½、性½差异较大,开发环境又往往不一样,尤其是与8½单片
机学习者已熟悉的KEIL C差异较大,再加上ARM单片机出现晚,发展历
史没有8½单片机长,资料积累远不如8½单片机丰富,这些½对学习
者提出了挑战、½成了恐慌。
(3)开发模式不一样导致的问题。每个ARM系列单片机,往往其
开发环境、开发模式是不一样的。以 STM32 为例,开发环境就有½几
种,开发模式又有寄存器模式、固件库½数模式两种,再加上各自又
可对应基于操½系统和无操½系统的½式,在工程模板的配½方面很
多初学者往往不得其要领,所有这些½得传统的单片机学习者在从 8
½单片机向 ARM迁移的过程中,感觉信心不足,不敢½易涉足。
½者本身是传统 8 ½单片机的一个资深学习者和应用开发者,对
上述这些感同身受、½会深厚。正因为如此,由于一个偶然的契机,
让½者在 2014 年暑假下定决心一定要破破这个邪,从而开始了长达
近三年的学习和教材撰写过程,走上了一个人的朝圣之旅。
正是这不折不扣的三年学习和思考,引领½者在本教材的框架构
思和具½撰写中,毫无觉察地将自己设½在学习者的立场和视野上。
言前
本教材的撰写自始至终½坚定地遵循了“二二”思想。第一个
“二”,即教材撰写的两个原则;第二个“二”,即教材撰写的两个
特色。
教材撰写的两个原则:一是基于学习者学习的原则,而不是方便
教授者教的原则;二是删繁就简、容易上手的原则,对传统学习者感
觉恐慌的部分,围绕应用和实践,采取够用、适用的方式,将其简
化,减少学习恐惧,对诸如工程模板配½等问题从根本上、本质上阐
述到½,½学习者真正理解为什么要这样做,从而避免云里雾里、一
知半解,达到得心应手、运用自如。
教材撰写的两个特色:一是围绕学习者学习;二是全案例驱动。
具½地说,就是完全站在学习者学习的角度,设计整个教材的逻辑关
系,组织每个章节的内容½系,在简明扼要地阐述 STM32 常用的每一
个典型外设模块的原理的基础上,围绕其应用,均以一个以上完整案
例的½式讨论其设计精髓,并在教材的最后给出了一个完整的工程案
例,所有这些案例的硬件和½件完全公开、毫无保留,因此十分有利
于学习者学习和模仿。大量的教学实践表明,模仿是学习单片机最为
成功的方式之一,它不仅可以让学习者产生成就感,而且可以较快地
激发学习者的兴趣和动力。
本教材的第一部分讨论了怎么学 STM32 的问题,分别从学习
STM32 的基础要求、STM32 的基本架构和大致原理、学习 STM32 的基
本方法、学习 STM32 需要哪些工具或平台等几个方面加以阐述。
教材的第二部分围绕一个 GPIO 输出的简单案例,讨论了 STM32
应用开发所必需的开发环境配½(包括模板的建立)、程序的下½½与
调试、STM32程序开发的三种模式等问题。
教材 的其 ½部 分,分别通 过一个及以上的完 整案例,讨论了
STM32 中最为典型的外设与功½模块,即 GPIO 输入/输出、延时的 3
种 实 现 ( 延 时 ½ 数 、 SysTick 、 定 时 器 中 断 ) 、 TIMER 与 PWM 、
USART、基于液晶和按键的人机界面、I
2
C 与 SPI、A/D、D/A、DMA、
中断等的工½原理、应用设计、程序实现。
教材的最后部分,讨论了一个基于线性CCD路径识别的综合性工程
案例。这个案例可帮助学习者进一步建立模块化思想,提高设计与开
发STM32的综合应用系统的½力与信心。
展开预览

推荐帖子 最新更新时间:2022-08-10 00:53

不知道某个电子元器件怎么用?来看看<电子元器件应用笔记>!
向大家推荐一个好资料--《电子元器件应用笔记》! 相信大家在日常工作中经常会遇到这样的情况--不知道某个元器件怎么用,非常想得到这个元器件的典型应用电路! 那么,推荐大家来看看这个资料《电子元器件应用笔记》! 需要说明的是,这里将的基本都是MAXIM的元器件,基本都是电源控制一类的芯片,总计150个应用笔记,全部都是PDF格式的。 http://download.eeworld.com
tiankai001 下载中心专版
如何测试与观察MSP432闪存中的数据
本帖最后由 平湖秋月 于 2015-8-6 21:17 编辑 ******************************************************************************/ /* DriverLib Includes */ #include "driverlib.h" /* Standard Includes */ #include
平湖秋月 微控制器 MCU
64Mb PSRAM 的简单驱动
replyreload += ',' + 3065921; 本帖最后由 dcexpert 于 2021-5-27 15:41 编辑 64Mbit(8兆字节)的PSRAM让人兴奋,虽然速度不是最快,但是却很有用。   游客,如果您要查看本帖隐藏内容请回复   example.py 显示了如何使用它,只需给它一个地址(范围0-8388607)和一个值(范围0-255),就可
dcexpert MicroPython开源版块
【LPC54100】第六周-菜单列表和模拟时钟
本帖最后由 shower.xu 于 2015-5-20 16:27 编辑 先把所有帖子做个汇总: 【LPC54100】第一周-分享部分原理图和blink跑起 第一周2-添加一个小显示屏并驱动成功 【LPC54100】第二周-添加按键处理程序并在LCD上显示 【LPC54100】第三周-彩屏驱动并移植GUI 【LPC54100】第三周2-彩屏驱动并移植GUI 【LPC54100】第四
shower.xu NXP MCU
SWD接口怎么连?JTAG接口 转SWD接口 ?
SWD接口,http://blog.163.com/zhaojun_xf/b ... 058020113642332897/ 我连在单片机VDDP,                         TMS / SWD_IO(test mode select input Serial Wire Debug input/output),                          SWD
大发明家 PCB设计
MSP430F5529库函数
大学期间写的MSP430F5529库函数,期间断断续续写了快一年,从刚开始的1.0版本到最后的2.+版本,最后才有了让笔者满意的库函数。     MSP430是一款中低端的单片机,以至于很多人认为它不需要库函数,选择使用手写代码开发,然而,笔者却不这么认为,在库函数完成后,笔者使用该单片机开发时相比之前的速度提升了很多倍,当然一个不可忽略的原因是我更熟悉这单片机了。     库函数几乎
灞波儿奔 微控制器 MCU

评论

登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
×