嵌入式系统原理及应用——基于STM32和RT-Thread
定 价:55 元 本教材已被 1 所学校申请过!
丛书名:普通高等教育电子信息类系列教材
- 作者:胡永涛
- 出版时间:2023/9/1
- ISBN:9787111733003
- 出 版 社:机械工业出版社
- 中图法分类:TP360.21
- 页码:
- 纸张:胶版纸
- 版次:
- 开本:16开
- 字数:(单位:千字)
本书以意法半导体(ST)的STM32L431系列微控制器为硬件核心,采用裸机开发和RT-Thread操作系统开发两条主线贯穿工作原理与实践应用,层层递进地介绍嵌入式系统的开发设计方法。全书共13章。第1~6章介绍STM32裸机开发,包括嵌入式系统概述、STM32硬件及软件基础、STM32通用功能输入输出、STM32外部中断、STM32定时器/计数器和STM32通用同步异步通信。第7~12章介绍RT-Thread操作系统开发,包括RT-Thread操作系统基础、RT-Thread线程管理、RT-Thread线程间同步、RT-Thread线程间通信、RT-Thread设备驱动和RT-Thread软件包。两种开发环境均适用于ST全系列微控制器,并且屏蔽了不同芯片的差异,用户掌握了STM32L431系列微控制器即掌握了ST全系列微控制器。第13章介绍基于STM32及OneNET的智能家居系统,通过综合应用案例,读者可以快速掌握基于STM32及RT-Thread的嵌入式系统设计与开发的方法。
本书配有大量源于工程项目的应用实例,所有实例均经过调试和测试,可直接移植应用。此外,本书各章均配有思维导图和思考与练习,帮助读者巩固基础知识,提高综合应用能力。
本书可作为普通高等院校电气、自动化、电子信息、机器人等专业的教材。本书配有以下教学资源:电子课件、源代码、教学大纲、视频。选用本书作教材的教师请登录wwwcmpeducom注册后下载,或加微信13910750469索取。
STM32系列微控制器是ST公司生产的基于Cortex-M内核的嵌入式微控制器,具有外设丰富、集成度高、外围电路简单等优点,是目前应用最为广泛的微控制器之一。因此,基于STM32的嵌入式系统开发是目前众多高等院校电气、自动化、电子信息、机器人等专业学生必须掌握的技术之一。ST公司提供了用于STM开发的集成开发工具STM32CubeIDE,降低了学习门槛,开发者利用STM32CubeIDE可快速掌握STM32裸机开发的方法,设计开发简单的嵌入式产品。然而,随着物联网、云计算、大数据、人工智能等高新技术的快速发展及广泛应用,单纯地掌握裸机开发方法已不能满足技术发展及企业用人需求,因此本书在STM32裸机开发的基础上,详细介绍基于RT-Thread操作系统的嵌入式系统开发方法。RT-Thread是上海睿赛德电子科技有限公司推出的一款开源的嵌入式实时操作系统,具有完全的自主知识产权,经过近20年的沉淀,已演变成一个功能强大、组件丰富的物联网操作系统,是目前开发者最多、装机量最大、社区最活跃的国产嵌入式实时操作系统之一。开发者利用睿赛德提供的集成开发工具RTThread Studio可方便快速地开发稳定、可靠、复杂的嵌入式产品。本书以STM32L431RCT6为硬件平台,介绍STM32系列微控制器基本外设及RT-Thread操作系统主要功能的工作原理及应用方法,由于集成开发环境屏蔽了不同型号微控制器的差异,读者掌握了STM32L431RCT6后,即可利用任意型号的STM32微控制器设计开发嵌入式系统。
本书内容可分为STM32裸机开发、RT-Thread操作系统开发和综合应用三部分。STM32裸机开发包括第1~6章:前两章介绍了嵌入式系统及STM32微控制器相关基础知识,如嵌入式系统基本概念、软硬件架构、STM32微控制器最小系统、裸机开发环境搭建等;第3~6章分别针对STM32核心外设GPIO、EXTI、TIM和USART,阐述其内部电路结构及应用方法,并配有相应的应用实例及详细的开发过程。RT-Thread操作系统开发包括第7~12章:第7章介绍了RT-Thread操作系统基础;第8~10章为RT-Thread操作系统的内核功能,详细介绍了线程管理、线程间同步和线程间通信的工作原理及应用方法,并配有简单的应用实例,帮助读者掌握基本应用方法;第11章为RT-Thread的设备管理,详细介绍了IO设备模型框架,在此基础上概括了PIN设备、UART设备、TIM设备和ADC设备的管理方式及应用方法,每种设备均给出了应用案例,读者在掌握上述设备应用后可根据需要自行学习其他设备;第12章为RT-Thread软件包,以AHT10、AT Device、MQTT和cJSON为例详细介绍了不同类型软件包的应用方法,读者在此基础上可根据应用需求快速掌握其他软件包的使用方法。第13章为综合应用,通过基于STM32和OneNET的智能家居系统介绍了基于STM32及RT-Thread的嵌入式系统开发设计流程,帮助读者全面掌握嵌入式系统设计开发的方法。
本书各章内容通过裸机开发和操作系统开发两条主线贯穿工作原理与应用实践两个主题,层次递进地讲解STM32微控制器基本外设的工作原理及应用和RT-Thread操作系统的工作原理及应用。为了便于读者掌握理论及设计开发方法,相关章节根据内容安排给出大量的应用实例,所有实例均经过测试验证,且大部分源于工程项目实践,读者参考案例可快速掌握嵌入式系统设计开发的方法。此外,本书每章前配有简化版思维导图,建议读者在完成本章内容学习后及时完善思维导图,在此基础上完成每章后的思考与练习,包括理论基础题和编程应用题,以巩固理论知识,拓展提高应用实践能力,最终形成完整的嵌入式课程体系。
前言本书是编者多年教学经验和工程实践经验的总结,由浅入深,难易适中,突出前沿,强调系统的学习路线,使读者在快速掌握裸机开发方法的基础上,进阶操作系统开发,培养结构化、模块化、面向对象的编程思想和思维方式,具备独立开发复杂嵌入式系统的能力。本书不仅是一本教科书和教学参考书,而且可作为物联网、仪器仪表、自动控制等工程技术人员及科技工作者的技术参考书。
本书由胡永涛任主编,李婕和董明如任副主编,赵新蕖、高雅昆、田效伍参编。其中,胡永涛编写第1、2、12、13章,李婕编写第3~5章,董明如编写第6、7、11章,赵新蕖编写第8章,高雅昆编写第9章,田效伍编写第10章。本书的程序调试和实验工作由李婕、董明如、卢亚娟等完成。
本书在编写过程中参考和借鉴了大量相关资料,并引用了部分文字和代码,谨对各位作者表示衷心的感谢。特别鸣谢意法半导体(中国)投资有限公司和上海睿赛德电子科技有限公司,本书获产学合作协同育人项目支持,在编写过程中得到了意法半导体大学计划负责人丁晓磊女士和睿赛德大学计划负责人罗齐熙先生大量无私的帮助。杜志勇、常文平、赵斌、杨捷、杨晓、张超、李金玉等为本书的编写提出了许多宝贵的意见,在此一并表示感谢。
由于编者水平有限,书中难免存在疏漏与不足之处,恳请读者批评指正,相关建议可以发送至邮箱hythait@163com。
编者
前言
第1章嵌入式系统概述1
本章思维导图1
1.1嵌入式系统基本概念1
1.1.1嵌入式系统的定义及特点1
1.1.2嵌入式系统的发展历程及
发展趋势2
1.1.3嵌入式系统的应用3
1.1.4嵌入式系统的架构4
1.2嵌入式系统硬件4
1.2.1嵌入式系统硬件架构4
1.2.2嵌入式处理器4
1.2.3ARM微控制器5
1.3嵌入式系统软件6
1.3.1嵌入式系统软件架构6
1.3.2嵌入式系统软件编程思想9
思考与练习10
第2章STM32硬件及软件基础12
本章思维导图12
2.1STM32微控制器概述12
2.1.1STM32微控制器产品系列及命名
规则13
2.1.2STM32L431性能14
2.1.3STM32L431外部结构15
2.2最小系统设计16
2.3裸机开发环境搭建19
2.4C语言基础22
2.4.1文件结构22
2.4.2程序版式23
2.4.3C语言知识精编24
思考与练习35
第3章STM32通用功能输入输出37
本章思维导图37
3.1GPIO概念及应用场景37
3.1.1GPIO概念37
3.1.2GPIO应用场景38
3.2IO内部电路结构及工作模式39
3.2.1IO内部电路结构39
3.2.2IO工作模式41
3.2.3GPIO应用步骤42
3.3GPIO应用实例1——状态指示灯46
3.3.1电路原理及需求分析46
3.3.2实现过程46
3.4GPIO应用实例2——按键控制LED51
3.4.1电路原理及需求分析51
3.4.2实现过程52
思考与练习54
第4章STM32外部中断57
本章思维导图57
4.1中断基本概念57
4.2STM32外部中断系统59
4.2.1EXTI主要特征59
4.2.2EXTI内部电路结构59
4.2.3EXTI应用步骤59
4.3EXTI应用实例——按键控制LED62
4.3.1电路原理及需求分析62
4.3.2实现过程63
思考与练习64
第5章STM32定时器/计数器66
本章思维导图66
5.1定时器/计数器基本概念66
5.2STM32定时器系统68
5.2.1TIM内部电路结构68
5.2.2脉冲宽度调制70
5.2.3TIM精确定时应用步骤72
5.3TIM应用实例1——精确定时73
5.3.1电路原理及需求分析73
5.3.2实现过程74
5.4TIM应用实例2——PWM控制状态
指示灯77
5.4.1电路原理及需求分析77
5.4.2实现过程77
思考与练习81
第6章STM32通用同步异步通信83
本章思维导图83
6.1通信基础83
6.1.1通信分类83
6.1.2异步串行通信85
6.2STM32的串口系统87
6.2.1USART的特点87
6.2.2USART内部电路结构87
6.2.3USART应用步骤87
6.3USART应用实例1——串口打印
信息90
6.3.1电路原理及需求分析90
6.3.2实现过程91
6.4USART应用实例2——开关量远程
监控系统95
6.4.1电路原理及需求分析95
6.4.2实现过程96
思考与练习106
目录第7章RT-Thread操作系统基础108
本章思维导图108
7.1RT-Thread操作系统简介及架构108
7.1.1RT-Thread简介108
7.1.2RT-Thread操作系统架构109
7.2RT-Thread开发环境搭建111
7.2.1软件下载及安装111
7.2.2软件测试111
7.3RT-Thread内核基础114
7.3.1内核简介114
7.3.2启动流程116
7.3.3程序内存分布118
7.3.4自动初始化机制119
7.3.5内核对象模型119
思考与练习120
第8章RT-Thread线程管理122
本章思维导图122
8.1线程概念及管理方式122
8.1.1线程概念122
8.1.2线程管理方式及特点123
8.2线程工作机制124
8.2.1线程控制块124
8.2.2线程重要属性125
8.2.3系统线程128
8.3线程应用方法128
8.3.1线程管理方式128
8.3.2动态线程应用步骤130
8.4线程应用实例——状态指示灯131
思考与练习135
第9章RT-Thread线程间同步137
本章思维导图137
9.1信号量137
9.1.1信号量工作机制137
9.1.2信号量管理方式139
9.1.3信号量应用步骤140
9.2互斥量142
9.2.1互斥量工作机制142
9.2.2互斥量管理方式143
9.2.3互斥量应用步骤144
9.2.4优先级翻转146
9.3事件集148
9.3.1事件集工作机制148
9.3.2事件集管理方式149
9.3.3事件集应用步骤151
9.4线程间同步应用实例——多线程
同步152
9.4.1电路原理及需求分析152
9.4.2实现过程153
思考与练习157
第10章RT-Thread线程间通信159
本章思维导图159
10.1邮箱159
10.1.1邮箱工作机制159
10.1.2邮箱管理方式161
10.1.3邮箱应用步骤162
10.2消息队列164
10.2.1消息队列工作机制164
10.2.2消息队列管理方式165
10.2.3消息队列应用步骤166
10.3信号168
10.3.1信号工作机制168
10.3.2信号管理方式168
10.3.3信号应用步骤170
10.4线程间通信应用实例——多变量
通信171
思考与练习174
第11章RT-Thread设备驱动175
本章思维导图175
11.1IO设备模型及框架176
11.1.1IO设备模型176
11.1.2IO设备模型框架177
11.1.3IO设备访问178
11.2PIN设备驱动179
11.2.1获取引脚编号179
11.2.2PIN设备管理方式180
11.2.3PIN设备应用实例及步骤183
11.3UART设备驱动184
11.3.1UART设备管理方式184
11.3.2UART设备应用实例及步骤188
11.4TIM设备驱动189
11.4.1TIM设备管理方式189
11.4.2TIM设备应用实例及步骤192
11.5ADC设备驱动197
11.5.1ADC设备管理方式197
11.5.2ADC设备应用实例及步骤198
11.6设备驱动应用实例——远程监控
系统201
11.6.1电路原理及需求分析201
11.6.2实现过程202
思考与练习209
第12章RT-Thread软件包211
本章思维导图211
12.1软件包简介及应用步骤212
12