嵌入式系统实现(Cortex-M3基础与提高)(第二版)(一体化教材)
作者: 吴建军
出版时间:2022-09-01
出版社:高等教育出版社
“十四五”职业教育国家规划教材“十三五”职业教育国家规划教材
- 高等教育出版社
- 9787040584486
- 2版
- 440766
- 64250907-9
- 16开
- 2022-09-01
- 404
- 288
- 工学
- 计算机科学与技术
- 电子信息
- 高职
本书是“十四五”职业教育国家规划教材。
本书第一部分介绍ARM基础知识、编程软件及实验平台资源;第二部分为基于HAL库的基本编程训练项目,设计了包括操作系统在内的12个项目;第三部分为基于HAL库的综合应用案例,围绕DHT11温湿度测量、WiFi通信、GPRS数据传输、基于RS485的电能数据监控设计了4个应用案例;第四部分介绍了Mbed OS相关的拓展训练项目。本书从初学者的角度出发设计和安排教学内容,力求通过教学设计降低初学者的学习难度。
为方便教学,本书配套有PPT教学课件、微课讲解等教学资源,其中部分资源以二维码的形式在书中呈现。
本书适合作为高等职业院校机电、电子、自动化、计算机等相关专业的教材和教学参考用书,也可以作为嵌入式系统开发人员、爱好者的参考资料。
第一部分 基础知识
第一章 ARM基础知识
1.1嵌入式系统简介
1.2指令集
1.3STM32F10x系列芯片简介
1.4STM32F10x系列芯片的系统架构及总线
1.5STM32F10x系列芯片的时钟系统
1.6ARM嵌入式系统
思考与练习
第二章 编程软件及实验平台资源
2.1STM32寄存器及库函数
2.2STM32CubeMX 软件简介及入门训练
2.3Keil MDK 简介及基本配置
2.4电路原理
2.5本书程序提要
操作训练
思考与练习
第二部分 基于HAL库的基本编程训练项目
项目一 GPIO端口的输出及按键输入
项目简介
相关知识
一、端口、引脚及输入输出模式
二、APB2外设时钟使能寄存器(RCC_APB2ENR)
三、端口配置寄存器(GPIOx_CRL和GPIOx_CRH)
四、端口输出数据寄存器(GPIOx_ODR)
五、端口输入数据寄存器(GPIOx_IDR)
六、端口复位寄存器(GPIOx_BRR)
七、端口置位/清除寄存器(GPIOx_BSRR)
操作训练
任务一通过调用库函数控制LED灯
任务二通过按键控制LED灯
思考与练习
项目二 外部输入中断及应用
项目简介
相关知识
一、中断的概念及STM32F10x系列芯片的中断
二、STM32F10x的中断向量表
三、中断优先级
四、STM32F10x的外部中断
五、弱函数和回调函数
操作训练
任务一外部中断输入实验
任务二脉冲计数实验(选学)
思考与练习
项目三 串行通信及应用
项目简介
相关知识
一、串行通信简介
二、UART连接方式
三、通信帧和波特率
四、串口寄存器
操作训练
任务一UART阻塞方式发送数据
任务二UART阻塞方式接收数据
任务三UART中断方式收发
任务四串口printf()重定向
思考与练习
项目四 液晶显示
项目简介
相关知识
操作训练
任务一TFTLCD屏驱动及测试
任务二状态、数字及图形显示
思考与练习
项目五 模/数转换器及应用
项目简介
相关知识
一、STM32内置模数转换器简介
二、规则通道组和注入通道组
三、ADC相关寄存器
操作训练
任务一单通道电压采集及LCD显示
任务二多通道电压采集及串口传输
任务三STM32F10x芯片内部温度读取
思考与练习
项目六 数/模转换器及应用
项目简介
相关知识
一、STM32F103RCT6的DAC通道
二、STM32F10x系列芯片的DAC配置基础
操作训练
任务一DAC输出
任务二输出三角波(选学)
任务三输出正弦波(选学)
思考与练习
项目七 定时器及应用
项目简介
相关知识
一、STM32F10x定时器分类及时钟源介绍
二、控制STM32F10x的通用定时器的寄存器
三、PWM及相关寄存器
四、通过TIM1_CH1输出PWM的配置步骤
五、输入捕获及相关寄存器
六、库函数设置输入捕获的配置步骤
操作训练
任务一定时器中断
任务二PWM信号输出
任务三输入捕获及频率测量
思考与练习
项目八 实时时钟(RTC)及应用
项目简介
相关知识
一、RTC基础知识
二、RTC编程思路
操作训练
任务一RTC的配置及串口传输
任务二TFT LCD显示实时时间
思考与练习
项目九用户数据的读写
项目简介
相关知识
一、AT24Cxx简介
二、STM32内部FLASH简介
三、STM32内部FLASH操作
四、与读写相关的寄存器说明
五、库函数介绍
操作训练
任务一将数据存储到外置存储器AT24Cxx(选学)
任务二将数据存储到内部闪存(选学)
思考与练习
项目十 低功耗模式的实现
项目简介
相关知识
操作训练
思考与练习
项目十一 实时操作系统uC/OS-Ⅱ的实现
项目简介
相关知识
一、uC/OS-Ⅱ内核介绍
二、uC/OS-Ⅱ的文件结构
三、相关概念事件、信号量、邮箱
操作训练
任务一双任务系统
任务二四任务系统(选学)
任务三信号量和邮箱(选学)
思考与练习
项目十二 实时操作系统RT-Thread的实现
项目简介
相关知识
RT Thread简介
操作训练
任务一从Keil MDK移植RT- Thread
任务二添加一个线程构成双线程系统
任务三多线程系统及线程间通信举例
思考与练习
第三部分 基于HAL库的综合应用案例
应用案例一 DHT11温湿度测量
案例简介
相关知识
一、DHT11数字温湿度传感器简介
二、宏语句简介
三、HAL库方式的微秒延时函数
四、使用HAL库驱动DHT11程序
五、TFT LCD程序的添加
操作训练
任务读取温湿度并TFTLCD显示(USART1传输)
思考与练习
应用案例二 WiFi通信
案例简介
相关知识
一、ESP8266 WiFi模块
二、无线组网
操作训练
任务一WiFi模块ESP8266的配置
任务二通过WiFi模块发送数据到服务器
思考与练习
应用案例三 GPRS数据传输
案例简介
相关知识
一、SIM800C模块
二、AT指令
三、乐联网云平台数据交互
操作训练
任务一使用SIM800C模块实现语音及短信通信
任务二通过SIM800C模块发送数据到云平台
任务三电压采集及云端显示
思考与练习
应用案例四 基于RS485的电能数据监控
案例简介
相关知识
一、系统结构和RS-485电路
二、串口DMA发送接收
操作训练
任务一电能表DDS238-1ZN的RS-485通信调试
任务二编程实现电能表的RS-485通信
思考与练习
第四部分 Mbed OS拓展训练项目
拓展项目一 基于Mbed的GPIO及按键中断
项目简介
相关知识
一、Mbed在线开发编译器
二、新建STM32项目
三、导出至Keil MDK
四、转换为Keil格式项目工程
五、编译及运行
操作训练
任务一通过Mbed实现LED灯的控制
任务二通过中断按键控制LED灯
思考与练习
拓展项目二 基于Mbed的UART通信
项目简介
相关知识
一、Serial类
二、发送数据
操作训练
任务串口发送字符串数据
思考与练习
拓展项目三 基于Mbed的定时器
项目简介
相关知识
一、Ticker类
二、TimeOut类
三、PWMOut类
操作训练
任务一定时器控制LED闪烁
任务二PWM输出
思考与练习
拓展项目四 Mbed OS多线程构建
项目简介
相关知识
操作训练
任务多线程构建
思考与练习
附录1C语言基础
附录2ASCII表
附录3电路原理图
参考文献