ARM微控制器与嵌入式系统 / “十四五”高等职业教育新形态一体化教材
定价:¥49.80
作者: 景妮琴,胡亦,吴友兰
出版时间:2024-08
最新印次日期:2024-8
出版社:中国铁道出版社
“十四五”职业教育国家规划教材
- 中国铁道出版社
- 9787113308247
- 1-1
- 531532
- 68260588-6
- 16开
- 2024-08
- 工学
- 计算机类
- 电子与信息大类
- 计算机类
- 计算机类
- 高职
作者简介
内容简介
本书是“十四五”高等职业教育新形态一体化教材之一,以实际应用开发为主线,讲解了基于ARMCortex-M4为内核的微控制器STM32F407的开发方法。本书采用项目引领、任务驱动的编写方式,先从开发环境的搭建开始,让读者快速进入开发角色,然后从点亮单灯、GPIO接口、定时器、NVIC、USART、SPI、I²C、PWM、ADC,再到嵌入式系统移植,由浅入深,使读者熟悉ARM微控制器与嵌入式系统的开发流程、STM32F4xx的固件库,以及各外设的使用方法。
本书适合作为高等职业院校学习ARM微控制器与嵌入式系统的教材,也可作为微控制器与嵌入式系统爱好者的自学用书,以及嵌入式工程技术人员的培训用书。
本书适合作为高等职业院校学习ARM微控制器与嵌入式系统的教材,也可作为微控制器与嵌入式系统爱好者的自学用书,以及嵌入式工程技术人员的培训用书。
目录
项目一开发环境搭建1
任务一微控制器选型1
【任务描述】1
【相关知识】2
一、ARM微控制器发展历史2
二、软件接口标准CMSIS2
【任务实施】3
控制器选型3
任务二初识开发板硬件电路6
【任务描述】6
【相关知识】6
STM32微控制器启动模式6
【任务实施】6
一、了解扩展板硬件电路6
二、了解核心板电路8
任务三搭建开发环境10
【任务描述】10
【相关知识】10
一、MDK-ARM10
二、JTAG接口和SWD调试接口10
【任务实施】11
一、获取KEIL5安装包11
二、安装KEIL511
三、安装STM32芯片包13
四、安装调试工具15
项目总结16
扩展阅读:华为麒麟芯片十年
攀登史16
项目二库函数开发初探———从点亮单灯开始18
任务一多文件编程18
【任务描述】18
【相关知识】18
一、使用函数提高编程效率18
二、模块化编程20
【任务实施】21
使用多文件编程求三角形和矩形面积21
任务二创建库函数工程模板22
【任务描述】22
【相关知识】22
一、固件库文件22
二、帮助文档26
【任务实施】27
创建库函数工程模板27
任务三点亮单灯34
【任务描述】34
【相关知识】34
一、点亮LED灯的开发步骤34
二、LED灯的硬件电路34
三、点亮LED灯的软件设计35
【任务实施】35
使用库函数开发点亮单灯35
项目总结39
扩展阅读:千里之行始于足下39
项目三使用GPIO接口完成简单开发任务40
任务一使用GPIO实现流水灯40
【任务描述】40
【相关知识】40
一、GPIO工作模式40
二、STM32F407ZGT6的时钟系统45
三、GPIO结构体及库函数49
【任务实施】53
通过GPIOA实现流水灯53
任务二使用GPIO完成按键控制55
【任务描述】55
【相关知识】55
一、按键的硬件电路55
二、按键去抖56
三、按键控制软件设计56
【任务实施】57
一、使用GPIOC0控制按键57
二、多个按键控制59
任务三数码管动态显示60
【任务描述】60
【相关知识】60
一、数码管内部结构60
二、数码管的静态显示61
三、数码管的动态显示62
【任务实施】62
一、在一位数码管上轮流显示0~962
二、四位数码管显示不同数字64
项目总结67
项目拓展67
扩展阅读:代码规范67
项目四利用定时器和外部中断实现电子钟校准68
任务一通过嵌套向量中断控制器
NVIC设置中断参数69
【任务描述】69
【相关知识】69
一、STM32的中断和异常69
二、嵌套向量中断控制器NVIC70
三、NVIC结构体73
四、NVIC的固件库函数75
五、中断编程要点75
【任务实施】75
完成基本定时器TIM6的NVIC配置75
任务二利用定时器实现电子钟76
【任务描述】76
【相关知识】77
一、高级定时器、通用定时器、基本定时器77
二、基本定时器的主要特性77
三、定时器的结构体80
四、定时器的库函数81
五、使用基本定时器TIM6定时1s82
【任务实施】83
一、掌握基本定时器的原理83
二、定时器定时1s83
三、定时器实现电子钟84
任务三利用外部中断实现电子钟的校准87
【任务描述】87
【相关知识】88
一、EXTI控制器的主要特性88
二、使用软件中断产生外部中断89
三、EXTI的结构体90
四、ETXI的库函数91
【任务实施】92
一、配置外部中断线的相关参数92
二、利用外部中断实现电子钟的校准93
项目总结98
扩展阅读:知识产权98
项目五通过USART收发数据100
任务一配置USART的参数101
【任务描述】101
【相关知识】101
一、串口通信协议101
二、USART主要特性104
三、USART功能104
四、USART的结构体109
五、USART的库函数111
【任务实施】113
配置USART1的相关参数113
任务二通过USART收发数据114
【任务描述】114
【相关知识】114
一、通过USART进行数据发送与接收原理114
二、编程要点114
【任务实施】115
通过USART1发送、接收数据并控制LED灯115
项目总结122
扩展阅读:中国自主CPU发展道路———龙芯研制之路122
项目六使用SPI总线驱动TFT屏显示123
任务一设置SPI的相关参数124
【任务描述】124
【相关知识】124
一、SPI协议124
二、SPI特性127
三、SPI框图127
四、SPI的结构体129
五、SPI的库函数132
【任务实施】133
设置SPI的参数,初始化SPI1133
任务二STM32驱动TFT-LCD屏
显示133
【任务描述】133
【相关知识】133
一、TFT-LCD屏133
二、串行接口传输写模式和读模式134
三、数据传输模式136
四、显示数据RAM136
五、典型电路接法136
【任务实施】137
SPI总线驱动TFT-LCD屏显示电子钟137
项目总结149
扩展阅读:工匠精神149
项目七利用定时器输出PWM波形151
任务一配置定时器生成PWM的参数151
【任务描述】151
【相关知识】151
一、PWM简介151
二、PWM的应用152
三、通用定时器的特性154
四、通用定时器的功能155
五、定时器的结构体166
六、定时器的库函数167
【任务实施】168
配置PWM参数168
任务二通过定时器生成PWM波形168
【任务描述】168
【相关知识】168
一、定时器生成PWM的编程要点168
二、定时器通道和输出端口的参数配置169
【任务实施】172
通过定时器生成PWM172
项目总结175
扩展阅读:精益求精175
项目八使用I2C获取BH1750光强176
任务一配置I2C参数176
【任务描述】176
【相关知识】177
一、I2C协议177
二、I2C的主要特性180
三、I2C功能181
四、I2C的通信过程184
五、I2C的结构体185
六、I2C的库函数187
【任务实施】191
初始化I2C结构体191
任务二使用I2C驱动BH1750获取光强192
【任务描述】192
【相关知识】192
一、BH1750环境光强度传感器集成电路192
二、BH1750结构框图193
三、BH1750的测量194
四、BH1750的传输时序195
【任务实施】196
驱动BH1750获取光强196
项目总结203
扩展阅读:柔性OLED显示屏203
项目九通过ADC采集电压值204
任务一配置ADC参数204
【任务描述】204
【相关知识】205
一、如何实现A/D转换205
二、STM32的ADC外设207
三、ADC的结构体213
四、ADC的库函数217
【任务实施】221
配置ADC相关参数221
任务二通过ADC采集电压值221
【任务描述】221
【相关知识】221
一、硬件连接方式221
二、独立模式单通道ADC采集编程要点222
【任务实施】223
通过ADC采集电压值223
项目总结226
扩展阅读:华为,正在引爆下一轮
科技革命226
项目十嵌入式操作系统μC/OS-Ⅲ的移植227
任务一将μC/OS-Ⅲ移植到STM32F407开发板227
【任务描述】227
【相关知识】227
一、嵌入式操作系统的特点227
二、常用的嵌入式操作系统229
三、裸机系统和多任务操作系统的区别230
【任务实施】232
μC/OS-Ⅲ操作系统移植232
任务二在μC/OS-Ⅲ上实现单任务
———LED灯闪烁237
【任务描述】237
【相关知识】237
一、多任务系统237
二、定义任务堆栈237
【任务实施】237
在μC/OS-Ⅲ上实现LED灯闪烁237
项目总结239
扩展阅读:华为鸿蒙操作系统240
任务一微控制器选型1
【任务描述】1
【相关知识】2
一、ARM微控制器发展历史2
二、软件接口标准CMSIS2
【任务实施】3
控制器选型3
任务二初识开发板硬件电路6
【任务描述】6
【相关知识】6
STM32微控制器启动模式6
【任务实施】6
一、了解扩展板硬件电路6
二、了解核心板电路8
任务三搭建开发环境10
【任务描述】10
【相关知识】10
一、MDK-ARM10
二、JTAG接口和SWD调试接口10
【任务实施】11
一、获取KEIL5安装包11
二、安装KEIL511
三、安装STM32芯片包13
四、安装调试工具15
项目总结16
扩展阅读:华为麒麟芯片十年
攀登史16
项目二库函数开发初探———从点亮单灯开始18
任务一多文件编程18
【任务描述】18
【相关知识】18
一、使用函数提高编程效率18
二、模块化编程20
【任务实施】21
使用多文件编程求三角形和矩形面积21
任务二创建库函数工程模板22
【任务描述】22
【相关知识】22
一、固件库文件22
二、帮助文档26
【任务实施】27
创建库函数工程模板27
任务三点亮单灯34
【任务描述】34
【相关知识】34
一、点亮LED灯的开发步骤34
二、LED灯的硬件电路34
三、点亮LED灯的软件设计35
【任务实施】35
使用库函数开发点亮单灯35
项目总结39
扩展阅读:千里之行始于足下39
项目三使用GPIO接口完成简单开发任务40
任务一使用GPIO实现流水灯40
【任务描述】40
【相关知识】40
一、GPIO工作模式40
二、STM32F407ZGT6的时钟系统45
三、GPIO结构体及库函数49
【任务实施】53
通过GPIOA实现流水灯53
任务二使用GPIO完成按键控制55
【任务描述】55
【相关知识】55
一、按键的硬件电路55
二、按键去抖56
三、按键控制软件设计56
【任务实施】57
一、使用GPIOC0控制按键57
二、多个按键控制59
任务三数码管动态显示60
【任务描述】60
【相关知识】60
一、数码管内部结构60
二、数码管的静态显示61
三、数码管的动态显示62
【任务实施】62
一、在一位数码管上轮流显示0~962
二、四位数码管显示不同数字64
项目总结67
项目拓展67
扩展阅读:代码规范67
项目四利用定时器和外部中断实现电子钟校准68
任务一通过嵌套向量中断控制器
NVIC设置中断参数69
【任务描述】69
【相关知识】69
一、STM32的中断和异常69
二、嵌套向量中断控制器NVIC70
三、NVIC结构体73
四、NVIC的固件库函数75
五、中断编程要点75
【任务实施】75
完成基本定时器TIM6的NVIC配置75
任务二利用定时器实现电子钟76
【任务描述】76
【相关知识】77
一、高级定时器、通用定时器、基本定时器77
二、基本定时器的主要特性77
三、定时器的结构体80
四、定时器的库函数81
五、使用基本定时器TIM6定时1s82
【任务实施】83
一、掌握基本定时器的原理83
二、定时器定时1s83
三、定时器实现电子钟84
任务三利用外部中断实现电子钟的校准87
【任务描述】87
【相关知识】88
一、EXTI控制器的主要特性88
二、使用软件中断产生外部中断89
三、EXTI的结构体90
四、ETXI的库函数91
【任务实施】92
一、配置外部中断线的相关参数92
二、利用外部中断实现电子钟的校准93
项目总结98
扩展阅读:知识产权98
项目五通过USART收发数据100
任务一配置USART的参数101
【任务描述】101
【相关知识】101
一、串口通信协议101
二、USART主要特性104
三、USART功能104
四、USART的结构体109
五、USART的库函数111
【任务实施】113
配置USART1的相关参数113
任务二通过USART收发数据114
【任务描述】114
【相关知识】114
一、通过USART进行数据发送与接收原理114
二、编程要点114
【任务实施】115
通过USART1发送、接收数据并控制LED灯115
项目总结122
扩展阅读:中国自主CPU发展道路———龙芯研制之路122
项目六使用SPI总线驱动TFT屏显示123
任务一设置SPI的相关参数124
【任务描述】124
【相关知识】124
一、SPI协议124
二、SPI特性127
三、SPI框图127
四、SPI的结构体129
五、SPI的库函数132
【任务实施】133
设置SPI的参数,初始化SPI1133
任务二STM32驱动TFT-LCD屏
显示133
【任务描述】133
【相关知识】133
一、TFT-LCD屏133
二、串行接口传输写模式和读模式134
三、数据传输模式136
四、显示数据RAM136
五、典型电路接法136
【任务实施】137
SPI总线驱动TFT-LCD屏显示电子钟137
项目总结149
扩展阅读:工匠精神149
项目七利用定时器输出PWM波形151
任务一配置定时器生成PWM的参数151
【任务描述】151
【相关知识】151
一、PWM简介151
二、PWM的应用152
三、通用定时器的特性154
四、通用定时器的功能155
五、定时器的结构体166
六、定时器的库函数167
【任务实施】168
配置PWM参数168
任务二通过定时器生成PWM波形168
【任务描述】168
【相关知识】168
一、定时器生成PWM的编程要点168
二、定时器通道和输出端口的参数配置169
【任务实施】172
通过定时器生成PWM172
项目总结175
扩展阅读:精益求精175
项目八使用I2C获取BH1750光强176
任务一配置I2C参数176
【任务描述】176
【相关知识】177
一、I2C协议177
二、I2C的主要特性180
三、I2C功能181
四、I2C的通信过程184
五、I2C的结构体185
六、I2C的库函数187
【任务实施】191
初始化I2C结构体191
任务二使用I2C驱动BH1750获取光强192
【任务描述】192
【相关知识】192
一、BH1750环境光强度传感器集成电路192
二、BH1750结构框图193
三、BH1750的测量194
四、BH1750的传输时序195
【任务实施】196
驱动BH1750获取光强196
项目总结203
扩展阅读:柔性OLED显示屏203
项目九通过ADC采集电压值204
任务一配置ADC参数204
【任务描述】204
【相关知识】205
一、如何实现A/D转换205
二、STM32的ADC外设207
三、ADC的结构体213
四、ADC的库函数217
【任务实施】221
配置ADC相关参数221
任务二通过ADC采集电压值221
【任务描述】221
【相关知识】221
一、硬件连接方式221
二、独立模式单通道ADC采集编程要点222
【任务实施】223
通过ADC采集电压值223
项目总结226
扩展阅读:华为,正在引爆下一轮
科技革命226
项目十嵌入式操作系统μC/OS-Ⅲ的移植227
任务一将μC/OS-Ⅲ移植到STM32F407开发板227
【任务描述】227
【相关知识】227
一、嵌入式操作系统的特点227
二、常用的嵌入式操作系统229
三、裸机系统和多任务操作系统的区别230
【任务实施】232
μC/OS-Ⅲ操作系统移植232
任务二在μC/OS-Ⅲ上实现单任务
———LED灯闪烁237
【任务描述】237
【相关知识】237
一、多任务系统237
二、定义任务堆栈237
【任务实施】237
在μC/OS-Ⅲ上实现LED灯闪烁237
项目总结239
扩展阅读:华为鸿蒙操作系统240













