- ISBN:9787512440418
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:24cm
- 页数:389页
- 出版时间:2023-03-01
- 条形码:9787512440418 ; 978-7-5124-4041-8
本书特色
本书既可以作为高等院校电子信息、自动化等专业微控制器相关课程的教材,也可以作为微控制器系统设计及相关行业工程技术人员的入门培训用书。
内容简介
本书内容分为两大部分,共17章。第1-8章为原理部分,第9-17章为实战部分。原理部分按照物联网体系、嵌入式系统、实时内核的逐层递进关系,系统地介绍了RT-Thread作为物联网实时操作系统在物联网项目体系中的作用,以及其自身的内核原理、组件技术等相关知识。实战部分基于RT-Thread操作系统,选取有物联网特色的实战案例,由浅入深地介绍了7个项目的开发过程。
目录
**部分 原理篇
第1章 物联网与嵌入式 3
1.1 物联网发展历程 3
1.2 物联网架构 5
1.3 物联网核心技术 6
1.4 嵌入式系统 10
1.4.1 嵌入式系统概念 10
1.4.2 嵌入式系统体系 10
1.5 嵌入式实时操作系统(RTOS) 12
1.5.1 嵌入式实时操作系统介绍 12
1.5.2 嵌入式实时操作系统的重要性能指标 12
1.5.3 几种常用的嵌入式实时操作系统 13
1.6 RT Thread概述 14
1.6.1 RT Thread简介 14
1.6.2 RT Thread架构体系 15
第2章 仿真环境搭建 17
2.1 RT Thread源码获取 17
2.2 MDK5安装 18
2.3 仿真工程 20
2.3.1 获取Nano版本源码 20
2.3.2 RT Thread Pack包安装 21
2.4 MDK5仿真环境配置 23
第3章 线程管理 26
3.1 线程与进程 26
3.1.1 线程与进程的概念 26
3.1.2 线程与进程的关系与区别 27
3.1.3 线程与进程的优缺点 27
3.1.4 线程与进程的案例 28
3.1.5 线程与进程的管理模型 29
3.2 裸机系统与多线程系统 31
3.2.1 裸机系统 31
3.2.2 多线程系统 33
3.2.3 祼机系统与多线程系统的区别与应用 34
3.3 线程的工作机制 35
3.3.1 多线程并行与并发机制 35
3.3.2 内核对象与对象容器 35
3.3.3 系统启动过程 37
3.3.4 线程分类 39
3.3.5 线程状态 42
3.4 线程管理 44
3.4.1 线程的结构 44
3.4.2 线程的创建 47
3.4.3 线程的删除 49
3.4.4 线程的启动 50
3.4.5 线程的挂起和恢复 50
3.4.6 延时处理 51
3.4.7 其他处理 52
3.4.8 钩子函数的设置与删除 53
3.5 线程的调度机制 54
3.5.1 优先级调度 54
3.5.2 时间片调度 54
3.5.3 调度器 55
3.5.4 就绪表 55
3.6 线程的应用示例 56
3.6.1 示例要求 56
3.6.2 示例实现 56
第4章 线程同步 59
4.1 信号量 60
4.1.1 信号量概念 60
4.1.2 信号量组成 61
4.1.3 信号量分类 61
4.1.4 计数信号量工作机制 61
4.1.5 二值信号量工作机制 62
4.1.6 信号量接口函数 63
4.1.7 信号量应用示例 67
4.2 互斥量 71
4.2.1 互斥量的组成 71
4.2.2 互斥量的工作机制 71
4.2.3 优先级翻转 72
4.2.4 互斥量的接口函数 78
4.2.5 互斥量的应用示例 80
4.3 事件集 84
4.3.1 事件集的特点 85
4.3.2 事件集的组成 85
4.3.3 事件集的工作机制 85
4.3.4 事件集的接口函数 86
4.3.5 事件集的应用示例 89
第5章 线程通信 93
5.1 消息邮箱 93
5.1.1 消息邮箱的特性 94
5.1.2 消息邮箱的组成 94
5.1.3 消息邮箱的工作机制 95
5.1.4 消息邮箱的接口函数 96
5.1.5 消息邮箱的应用示例 99
5.2 消息队列 103
5.2.1 消息队列的特性 103
5.2.2 消息队列的组成 103
5.2.3 消息队列的工作机制 104
5.2.4 消息队列的接口函数 105
5.2.5 消息队列的应用示例 110
5.3 信 号 114
5.3.1 信号的背景知识 114
5.3.2 信号的工作机制 115
5.3.3 信号与中断、事件的对比 116
5.3.4 信号的接口函数 116
5.3.5 信号的应用示例 118
第6章 中断与时钟 122
6.1 中断概述 122
6.2 中断术语及性能 123
6.3 中断分类 126
6.3.1 按概念范畴划分 126
6.3.2 按能否屏蔽划分 126
6.3.3 按中断源划分 127
6.3.4 按中断信号的产生方式划分 127
6.4 中断处理过程 127
6.4.1 中断处理的一般流程 127
6.4.2 RT Thread中断处理流程 130
6.4.3 中断服务程序的编写 132
6.5 系统时钟 132
6.6 时钟管理 133
6.6.1 时钟节拍的概念 133
6.6.2 时钟节拍的实现 134
6.6.3 时钟节拍的获取 134
6.7 定时器管理 134
6.7.1 定时器分类 134
6.7.2 软件定时器分类 135
6.7.3 定时器的工作机制 135
6.7.4 定时器的操作接口 136
6.8 定时器应用示例 140
第7章 内存管理 143
7.1 内存管理基本概念 143
7.2 内存管理工作机制 144
7.2.1 静态内存管理 145
7.2.2 动态内存管理 146
7.3 内存管理接口函数 149
7.3.1 静态内存管理接口函数 149
7.3.2 动态内存管理接口函数 152
7.4 内存管理应用示例 155
第8章 组件应用 160
8.1 组件概述 30 ?160
8.2 ENV辅助工具 161
8.2.1 ENV辅助工具的获取 161
8.2.2 ENV辅助工具的注册 163
8.2.3 ENV辅助工具的功能介绍 164
8.3 FinSH控制台 167
8.3.1 FinSH 控制台输入模式 167
8.3.2 FinSH 控制台内置命令 168
8.3.3 FinSH 控制台自定义命令 171
8.4 文件系统 172
8.4.1 常用文件系统 172
8.4.2 DFS简介 173
8.4.3 DFS架构 173
8.4.4 DFS数据结构 174
8.4.5 DFS使用步骤 175
8.4.6 DFS管理接口 176
8.4.7 文件系统应用示例 177
8.5 网络通信 181
8.5.1 Socket(套接字)模型 181
8.5.2 SAL组件简介 182
8.5.3 AT设备通信 183
8.5.4 网络通信应用示例 185
第二部分 实战篇
第9章 开发环境介绍 191
9.1 硬件资源介绍 191
9.1.1 开发板配件 191
9.1.2 上电检测 191
9.1.3 板载资源 192
9.1.4 调试工具 193
9.2 软件工具介绍 198
9.2.1 MDK开发工具 198
9.2.2 STM32CubeMX配置工具 202
9.3 RT Thread系统移植 206
9.3.1 Nano版本移植 206
9.3.2 标准版本移植 215
第10章 多线程邮箱通信 224
10.1 项目准备 224
10.2 线程管理 224
10.3 线程创建 225
10.3.1 创建静态线程 225
10.3.2 创建动态线程 226
10.4 消息邮箱通信 226
10.4.1 功能设计 227__
10.4.3 消息邮箱的使用 227
10.5 消息邮箱通信测试 229
10.5.1 硬件连接 229
10.5.2 驱动安装 229
10.5.3 程序烧写 230
10.5.4 串口调试 231
第11章 多线程队列通信 234
11.1 项目准备 234
11.2 消息队列工作机制 234
11.3 串口DMA接收原理 235
11.4 项目实现 236
11.4.1 串口选择 236
11.4.2 串口配置 236
11.4.3 ENV串口配置 237
11.4.4 程序实现 238
11.5 项目测试 242
11.5.1 硬件接线 242
11.5.2 串口测试 243
第12章 GUI移植 245
12.1 项目准备 245
12.2 初识LVGL 245
12.3 LVGL移植 246
12.3.1 文件准备 246
12.3.2 文件导入 247
12.3.3 配置脚本 247
12.3.4 使用ENV工具配置LVGL 248
12.3.5 生成 MDK工程 249
12.4 GUI开发 250
12.4.1 添加LVGL示例文件 250
12.4.2 添加LCD驱动 251
12.4.3 SRAM 配置 255
12.4.4 使能CRC校验 256
12.4.5 使能内存分配算法 257
12.4.6 SRAM 功能使能 257
12.4.7 编写程序 258
12.4.8 错误处理 260
12.5 GUI测试 260__
第13章 环境光强采集系统 262
13.1 项目准备 262
13.2 ADC传感器 262
13.2.1 ADC简介 263
13.2.2 传感器电路原理 263
13.2.3 ADC时钟 264
13.2.4 ADC配置 265
13.3 项目开发 268
13.3.1 ADC外设初始化 269
13.3.2 获取光敏传感器数值 270
13.3.3 LVGL界面显示 273
13.4 测试效果 279
13.4.1 串口显示光照强度 279
13.4.2 LCD屏幕显示光照强度 280
第14章 环境温湿度采集系统 281
14.1 项目准备 281
14.2 DHT11传感器介绍 281
14.2.1 引脚封装 282
14.2.2 工作原理 283
14.3 项目开发 285
14.3.1 硬件连接与配置 285
14.3.2 ENV配置软件包 285
14.3.3 温湿度采集线程开发 287
14.3.4 温湿度显示线程开发 289
14.4 项目测试 294
14.4.1 串口显示温湿度数据 294
14.4.2 LCD屏幕显示温湿度 294
第15章 文件存储系统 296
15.1 项目准备 296
15.2 文件系统介绍 296
15.3 文件系统端口配置 297
15.4 文件系统软件包配置 298
15.4.1 FatFs组件配置 298
15.4.2 SDIO端口配置 298
15.5 项目开发 299
15.5.1 文件挂载线程 299
15.5.2 文件读写操作的实现 301
15.5.3 温湿度采集线程实现 303
15.6 项目测试 307
第16章 物联网云平台 309
16.1 物联网云平台的概念 309
16.2 物联网云平台的系统架构 310
16.3 国内外主流的物联网云平台 311
16.4 阿里云物联网平台简介 311
16.4.1 阿里云物联网平台架构 312
16.4.2 阿里云物联网平台通信 313
16.4.3 阿里云物联网平台的主要功能 313
16.4.4 阿里云物联网平台的优势 314
16.5 阿里云物联网平台应用 315
16.5.1 阿里云物联网平台配置 315
16.5.2 MQTT.fx工具配置 317
16.5.3 设备接入云平台测试 322
16.6 OneNET云平台简介 324
16.6.1 OneNET云平台架构 324
16.6.2 OneNET云平台通信 325
16.6.3 OneNET云平台的主要功能 325
16.6.4 OneNET云平台的资源模型 327
16.7 OneNET云平台应用 328
16.7.1 OneNET云平台配置 328
16.7.2 MQTT.fx工具配置 330
16.7.3 设备接入云平台测试 332
第17章 智能环境监控系统 334
17.1 项目准备 334
17.2 项目架构 334
17.3 项目实现 335
17.3.1 嵌入式部分的实现 335
17.3.2 云平台部分的实现 368
17.4 项目测试 386
17.4.1 串口信息测试 386
17.4.2 LCD界面测试 387
17.4.3 云平台测试 387
17.5 项目总结 388
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0