×
嵌入式Cortex-M3基础与项目实践

包邮嵌入式Cortex-M3基础与项目实践

¥51.4 (7.4折) ?
1星价 ¥51.4
2星价¥51.4 定价¥69.0
暂无评论
图文详情
  • ISBN:9787121459818
  • 装帧:平塑
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:324
  • 出版时间:2023-07-01
  • 条形码:9787121459818 ; 978-7-121-45981-8

本书特色

本书由多年深耕嵌入式单片机开发和培训的信盈达公司组织,具有资深一线实战开发经验的工程师和丰富职业院校教学经验老师联合编写,从项目实践出发,理论结合应用,详解嵌入式Cortex-M3基础知识和各项关键技术。本书提供硬件原理图资料、实例源程序、教学PPT、实验指导、芯片手册等配套资料,读者可免费下载使用。 从项目实践出发,理论结合应用,详解嵌入式Cortex-M3基础知识和各项关键技术;免费提供硬件原理图、实例源程序、教学PPT

内容简介

本教材共23章,首先介绍了嵌入式系统、STM32的软件开发环境及实验平台资源;接着详细地讲解了STM32芯片中GPIO、UART、NVIC、SysTick、Timer、WDG、RTC、DMA、ADC、DAC、I2C、SPI、LCD、TOUCH、FSMC、SDIO、CAN、USB等功能,并通过模块的学习,让读者充分掌握STM32相关知识点;同时通过项目实践,帮助读者掌握项目开发的设计流程,并把STM32模块知识充分应用到项目中,从而巩固之前所学的知识。本教材从项目实践出发,通过模块化学习并应用在实际项目中,培养读者在实际开发应用中发现问题、分析问题和解决问题的能力。同时,本教材提供硬件原理图资料、实例源程序、教学PPT、实验指导、芯片手册等配套资料,有助于提高读者的学习效果和开发能力。

目录

目 录 第1章 初识嵌入式系统 1 1.1 学习目的 1 1.2 嵌入式系统概述 1 1.2.1 嵌入式系统定义 1 1.2.2 嵌入式处理器 1 1.3 嵌入式操作系统概述 3 1.3.1 操作系统简介 4 1.3.2 嵌入式操作系统常见的术语 5 1.3.3 常见的嵌入式操作系统 7 1.4 ARM体系结构 9 1.4.1 ARM简介 9 1.4.2 ARM的应用领域及特点 10 1.4.3 ARM系列的微处理器 11 1.4.4 ARM微处理器结构 12 1.4.5 ARM的应用选型 13 1.4.6 ARM体系结构 14 1.4.7 ARM模式 16 1.4.8 ARM内部寄存器 16 1.4.9 ARM异常 17 1.5 STM32解读 22 1.5.1 STM32资源 22 1.5.2 STM32存储器组织 22 1.5.3 STM32*小系统 24 1.5.4 STM32调试接口简介 24 1.5.5 STM32内部结构 25 1.5.6 STM32时钟控制 26 1.5.7 STM32指令集 26 1.5.8 STM32F103ZET6简介 27 1.5.9 STM32F103ZET6特性 27 1.6 本章课后作业 28 第2章 环境搭建及工具使用 29 2.1 学习目的 29 2.2 Keil安装 29 2.3 ST-LINK仿真驱动安装 30 2.4 STM32库函数获得 31 2.5 基于固件库新建工程 31 2.6 MDK编译及下载调试 33 2.6.1 MDK编译 33 2.6.2 MDK仿真 34 2.7 本章课后作业 36 第3章 实验平台硬件资源 37 3.1 学习目的 37 3.2 实验平台硬件资源 37 3.3 外围硬件 39 3.3.1 CPU电路 39 3.3.2 电源电路 40 3.3.3 晶振电路 40 3.3.4 复位电路 40 3.4 本章课后作业 40 第4章 GPIO接口实验 41 4.1 学习目的 41 4.2 GPIO接口的原理 41 4.2.1 GPIO接口简介 41 4.2.2 GPIO接口类型分析 42 4.2.3 GPIO接口功能配置 43 4.2.4 GPIO接口相关寄存器 44 4.2.5 GPIO接口相关的库函数 59 4.3 LED实验硬件设计 61 4.3.1 硬件原理图 61 4.3.2 LED实验硬件原理图分析 61 4.4 LED实验软件设计 61 4.5 LED实验示例程序分析及仿真 62 4.5.1 LED初始化函数 62 4.5.2 LED闪烁函数 62 4.5.3 LED相关宏定义 63 4.5.4 LED实验main函数 63 4.6 按键输入实验 63 4.6.1 按键输入实验硬件设计 63 4.6.2 按键输入实验软件设计 64 4.6.3 按键扫描函数 64 4.6.4 KEY相关宏定义 65 4.6.5 按键实验main函数 65 4.7 本章课后作业 66 第5章 UART实验 67 5.1 学习目的 67 5.2 通用串口通信简介 67 5.2.1 通信概述 67 5.2.2 同步通信和异步通信 67 5.2.3 串行通信的数据传送速率 69 5.2.4 串行通信方式 69 5.3 STM32F1串口模块 69 5.3.1 STM32F1串口模块功能描述 69 5.3.2 STM32F1串口模块的结构 71 5.3.3 STM32F1串口模块I/O接口分布 72 5.3.4 STM32F1串口模块相关寄存器 76 5.3.5 STM32F1串口模块相关库函数 85 5.4 UART实验硬件设计 89 5.5 UART实验软件设计 90 5.6 UART实验示例程序分析及仿真 90 5.6.1 UART 初始化函数 90 5.6.2 UART 测试函数 91 5.6.3 UART实验main函数 91 5.6.4 仿真下载测试 92 5.7 本章课后作业 92 第6章 外部中断实验 93 6.1 学习目的 93 6.2 中断概述 93 6.2.1 中断定义 93 6.2.2 中断的意义 93 6.2.3 中断优先级及中断嵌套 94 6.3 Cortex-M3中断体系 94 6.3.1 NVIC简介 94 6.3.2 NVIC优先级表示 95 6.3.3 Cortex-M3异常中断向量表 96 6.3.4 STM32F1异常中断向量表 96 6.3.5 STM32F1异常中断向量表的定义 98 6.3.6 Cortex-M3中断设置相关库函数 98 6.3.7 中断服务函数 100 6.4 外部中断 101 6.4.1 外部中断简介 101 6.4.2 外部中断/事件控制器的结构 101 6.4.3 外部中断线配置 102 6.4.4 外部中断相关库函数 102 6.4.5 NVIC相关库函数 104 6.5 外部中断实验硬件设计 105 6.6 外部中断实验软件设计 105 6.7 外部中断实验示例程序分析及仿真 106 6.7.1 外部中断0初始化函数 106 6.7.2 外部中断服务函数 107 6.8 本章课后作业 107 第7章 SysTick定时器实验 108 7.1 学习目的 108 7.2 SysTick定时器概述 108 7.2.1 SysTick定时器的作用 108 7.2.2 SysTick定时器的结构 109 7.2.3 SysTick定时器的寄存器 109 7.2.4 SysTick定时器的库函数 111 7.3 SysTick定时器实验硬件设计 112 7.4 SysTick定时器实验软件设计 112 7.5 SysTick定时器实验示例程序分析及仿真 112 7.5.1 SysTick初始化函数 112 7.5.2 SysTick定时器实验main函数 113 7.6 本章课后作业 113 第8章 基本定时器实验 114 8.1 学习目的 114 8.2 基本定时器 114 8.2.1 基本定时器简介 114 8.2.2 基本定时器特征 114 8.2.3 基本定时器的结构 114 8.2.4 基本定时器时基单元 115 8.2.5 基本定时器相关库函数 116 8.3 基本定时器实验硬件设计 119 8.4 基本定时器实验软件设计 119 8.5 基本定时器实验示例程序分析及仿真 119 8.5.1 基本定时器初始化函数 119 8.5.2 基本定时器中断服务函数 120 8.6 本章课后作业 120 第9章 通用定时器实验 121 9.1 学习目的 121 9.2 通用定时器概述 121 9.2.1 通用定时器介绍 121 9.2.2 通用定时器的结构 121 9.2.3 通用定时器PWM应用 122 9.2.4 通用定时器捕获模式 123 9.2.5 通用定时器相关库函数 124 9.3 通用定时器实验硬件设计 127 9.4 通用定时器实验软件设计 127 9.5 通用定时器实验示例程序分析及仿真 127 9.5.1 通用定时器3初始化函数 127 9.5.2 通用定时器3中断服务函数 128 9.5.3 通用定时器实验main函数 129 9.6 本章课后作业 129 第10章 看门狗实验 130 10.1 学习目的 130 10.2 独立看门狗 130 10.2.1 独立看门狗的特征 130 10.2.2 独立看门狗的结构 131 10.2.3 独立看门狗的超时时间 131 10.2.4 独立看门狗相关库函数 132 10.3 独立看门狗实验硬件设计 134 10.4 独立看门狗实验软件设计 134 10.5 独立看门狗实验示例程序分析及仿真 134 10.5.1 独立看门狗初始化函数 134 10.5.2 独立看门狗实验main函数 135 10.6 窗口看门狗 136 10.6.1 窗口看门狗特征 136 10.6.2 窗口看门狗的结构 136 10.6.3 窗口看门狗的超时时间 136 10.6.4 窗口看门狗相关库函数 137 10.7 窗口看门狗实验硬件设计 140 10.8 软件看门狗实验软件设计 140 10.9 窗口看门狗实验示例程序分析及仿真 140 10.9.1 窗口看门狗初始化函数 140 10.9.2 窗口看门狗中断服务函数 141 10.9.3 窗口看门狗实验main函数 141 10.10 本章课后作业 142 第11章 RTC实验 143 11.1 学习目的 143 11.2 RTC概述 143 11.3 常用RTC 143 11.3.1 DS1302 143 11.3.2 PCF8563 143 11.4 STM32F1 RTC 144 11.4.1 STM32F1 RTC概述 144 11.4.2 STM32F1 RTC的结构 145 11.4.3 STM32F1 RTC时钟源 145 11.4.4 STM32F1 RTC时钟源相关库函数介绍 147 11.4.5 STM32F1 RTC相关库函数 150 11.5 RTC实验硬件设计 155 11.6 RTC实验软件设计 155 11.7 RTC实验示例程序分析及仿真 156 11.7.1 RTC初始化函数 156 11.7.2 RTC设置及显示时间函数 157 11.7.3 RTC实验main函数 158 11.7.4 RTC实验测试结果 158 11.8 本章课后作业 158 第12章 DMA模块实验 159 12.1 学习目的 159 12.2 DMA模块 159 12.3 STM32F1 DMA模块 159 12.3.1 STM32F1 DMA模块的主要特性 159 12.3.2 STM32F1 DMA模块的结构 160 12.3.3 STM32F1 DMA模块的功能 160 12.3.4 STM32F1 DMA模块相关库函数 162 12.4 DMA模块实验硬件设计 166 12.5 DMA模块实验软件设计 166 12.6 DMA模块实验示例程序分析及仿真 166 12.6.1 DMA模块初始化函数 166 12.6.2 DMA模块启动发送函数 167 12.6.3 DMA模块实验main函数 167 12.6.4 DMA模块实验测试结果 168 12.7 本章课后作业 168 第13章 ADC实验 169 13.1 学习目的 169 13.2 通用ADC介绍 169 13.2.1 ADC概述 169 13.2.2 ADC的工作原理 169 13.3 STM32F1 ADC功能 170 13.3.1 STM32F1 ADC概述 170 13.3.2 STM32F1 ADC的特征 171 13.3.3 STM32F1 ADC的结构 171 13.3.4 STM32F1 ADC的开关控制 171 13.3.5 STM32F1 ADC的时钟配置 171 13.3.6 STM32F1 ADC的通道选择 172 13.3.7 STM32F1 ADC的转换模式 173 13.3.8 STM32F1 ADC的转换时序 173 13.3.9 STM32F1 ADC的扫描模式 174 13.3.10 STM32F1 ADC的间断模式 174 13.3.11 STM32F1 ADC的数据对齐方式 175 13.3.12 STM32F1 ADC的采样时间 175 13.3.13 STM32F1 ADC的中断 175 13.3.14 STM32F1 ADC的DMA请求 176 13.3.15 STM32F1 ADC相关库函数 176 13.4 ADC实验硬件设计 182 13.5 ADC实验软件设计 182 13.6 ADC实验示例程序分析及仿真 182 13.6.1 ADC初始化函数 183 13.6.2 ADC转换函数 184 13.6.3 ADC实验main函数 184 13.6.4 ADC实验测试结果 185 13.7 本章课后作业 185 第14章 DAC实验 186 14.1 学习目的 186 14.2 通用DAC 186 14.2.1 DAC的工作原理 186 14.2.2 DAC的类型 187 14.3 STM32F1 DAC功能 187 14.3.1 STM32F1 DAC简介 187 14.3.2 STM32F1 DAC的主要特征 187 14.3.3 STM32F1 DAC的结构 188 14.3.4 STM32F1 DAC通道使能 188 14.3.5 STM32F1 DAC输出缓存 189 14.3.6 STM32F1 DAC数据格式 189 14.3.7 STM32F1 DAC转换使能 189 14.3.8 STM32F1 DAC触发方式 189 14.3.9 STM32F1 DAC DMA请求 190 14.3.10 STM32F1 DAC相关库函数介绍 190 14.4 DAC实验硬件设计 192 14.5 DAC实验软件设计 192 14.6 DAC实验示例程序分析及仿真 192 14.6.1 DAC初始化函数 192 14.6.2 DAC输出值设置函数 194 14.6.3 DAC实验main函数 194 14.6.4 DAC实验测试结果 195 14.7 本章课后作业 195 第15章 I2C总线实验 196 15.1 学习目的 196 15.2 I2C总线知识 196 15.2.1 I2C总线物理拓扑结构 196 15.2.2 I2C总线特征 197 15.3 I2C总线协议 197 15.3.1 I2C总线基本时序 197 15.3.2 I2C总线数据传输时序 197 15.3.3 I2C器件寻址通信时序 198 15.3.4 I2C总线的操作 198 15.4 I2C总线时序编程 199 15.4.1 I2C总线起始条件 199 15.4.2 I2C总线停止条件 199 15.4.3 I2C总线发送应答信号或非应答信号 200 15.4.4 I2C总线检测应答信号或非应答信号 200 15.4.5 I2C总线发送数据 200 15.4.6 I2C总线接收数据 201 15.5 AT24C02编程 201 15.5.1 AT24C02基本功能介绍 201 15.5.2 AT24C02写时序 202 15.5.3 AT24C02读时序 203 15.6 I2C总线模拟时序实验硬件设计 203 15.7 I2C总线模拟时序实验软件设计 204 15.8 I2C总线模拟时序实验示例程序分析及仿真 204 15.8.1 AT24C02单字节写函数 204 15.8.2 AT24C02单字节读函数 205 15.8.3 I2C总线实验main函数 205 15.8.4 I2C总线模拟时序实验测试结果 206 15.9 本章课后作业 206 第16章 SPI总线实验 207 16.1 学习目的 207 16.2 通用SPI总线 207 16.2.1 SPI总线协议简介 207 16.2.2 SPI总线的物理拓扑结构 207 16.2.3 SPI总线的通信原理 208 16.3 STM32F1 SPI模块 208 16.3.1 STM32F1 SPI模块简介 208 16.3.2 STM32F1 SPI模块的主要特性 209 16.3.3 STM32F1 SPI模块的结构 209 16.3.4 STM32F1 SPI模块的时序 211 16.3.5 STM32F1 SPI模块的数据发送与接收 212 16.3.6 STM32F1 SPI模块相关库函数 212 16.4 W25Q64 215 16.4.1 W25Q64的基本功能 215 16.4.2 W25Q64的指令 215 16.4.3 W25Q64的页编程时序 216 16.4.4 W25Q64的读数据时序 217 16.4.5 W25Q64的扇区擦除时序 217 16.5 SPI总线实验硬件设计 218 16.6 SPI总线实验软件设计 218 16.7 SPI总线实验示例程序分析及仿真 219 16.7.1 SPI2模块的初始化函数 219 16.7.2 SPI2模块的数据发送/接收函数 219 16.7.3 W25Q64的写数据函数 220 16.7.4 W25Q64的读数据函数 220 16.7.5 SPI总线实验测试结果 221 16.8 本章课后作业 221 第17章 TFT LCD屏实验 222 17.1 学习目的 222 17.2 LCD屏 222 17.2.1 常见的显示设备 222 17.2.2 常见的彩色显示屏类别 222 17.2.3 LCD系统 224 17.2.4 LCD屏的主要参数 224 17.3 TFT LCD屏的工作原理 225 17.3.1 并行通信总线协议简介 225 17.3.2 ILI9486 225 17.3.3 取模软件应用 228 17.4 TFT LCD屏实验硬件设计 229 17.5 TFT LCD屏实验软件设计 229 17.6 TFT LCD屏实验示例程序分析及仿真 230 17.6.1 TFT LCD屏画点函数 230 17.6.2 TFT LCD屏显示字符函数 230 17.6.3 TFT LCD屏实验测试结果 231 17.7 本章课后作业 231 第18章 触摸屏实验 232 18.1 学习目的 232 18.2 触摸屏 232 18.2.1 触摸屏的分类 232 18.2.2 电阻式触摸屏的工作原理 232 18.2.3 电阻式触摸屏的校准原理 233 18.2.4 电阻式触摸屏的校准算法 234 18.2.5 XPT2046 235 18.3 触摸屏实验硬件设计 237 18.4 触摸屏实验软件设计 237 18.5 触摸屏实验示例程序分析及仿真 238 18.5.1 触摸屏SPI数据发送函数 238 18.5.2 触摸屏SPI数据接收函数 239 18.5.3 触摸屏校准函数 239 18.5.4 触摸屏实验测试结果 241 18.6 本章课后作业 241 第19章 FSMC实验 242 19.1 学习目的 242 19.2 FSMC概述 242 19.2.1 FSMC简介 242 19.2.2 FSMC结构 242 19.2.3 FSMC 映射地址空间 243 19.2.4 NOR闪存和PSRAM控制器的时序 245 19.2.5 NOR闪存和PSRAM控制器库函数介绍 246 19.3 FSMC实验硬件设计 247 19.4 FSMC实验软件设计 247 19.5 FSMC实验示例程序分析及仿真 248 19.5.1 FSMC初始化函数 248 19.5.2 FSMC实验main函数 249 19.6 本章课后作业 250 第20章 SDIO总线实验 251 20.1 学习目的 251 20.2 SDIO总线概述 251 20.2.1 SDIO总线简介 251 20.2.2 SDIO总线的信号 251 20.2.3 SDIO总线的指令 252 20.3 STM32F1 SDIO总线概述 253 20.3.1 STM32F1 SDIO总线的特性 253 20.3.2 STM32F1 SDIO总线的功能 253 20.3.3 STM32F1 SDIO总线的指令和响应 254 20.3.4 STM32F1 SDIO卡的指令 256 20.3.5 STM32F1 SDIO总线的数据传输方式 257 20.3.6 STM32F1 SDIO总线相关库函数 258 20.4 SDIO总线实验硬件设计 262 20.5 SDIO总线实验软件设计 262 20.6 SDIO总线实验示例程序分析及仿真 264 20.6.1 SD卡初始化函数 264 20.6.2 SD卡读数据函数 265 20.6.3 SD卡写数据函数 266 20.6.4 SDIO总线实验测试结果 266 20.7 本章课后作业 267 第21章 CAN总线实验 268 21.1 学习目的 268 21.2 CAN总线概述 268 21.2.1 CAN总线简介 268 21.2.2 CAN总线的主要特性 269 21.2.3 CAN总线的分层结构 269 21.2.4 CAN总线物理层的定义 270 21.2.5 CAN总线的数据帧格式 271 21.2.6 CAN总线的仲裁机制 272 21.2.7 CAN总线的错误检测机制 272 21.2.8 CAN总线的位时序特性 273 21.2.9 CAN总线的同步机制 274 21.3 bxCAN 275 21.3.1 bxCAN的主要特点 275 21.3.2 bxCAN的功能描述 276 21.3.3 bxCAN的工作模式 277 21.3.4 bxCAN的测试模式 277 21.3.5 bxCAN的位时间特性 278 21.3.6 bxCAN的报文过滤 279 21.3.7 bxCAN相关库函数 279 21.4 CAN总线实验硬件设计 284 21.5 CAN总线实验软件设计 284 21.6 CAN总线实验示例程序分析及仿真 285 21.6.1 CAN发送数据函数 285 21.6.2 CAN接收数据函数 285 21.6.3 CAN总线实验测试结果 286 21.7 本章课后作业 286 第22章 USB实验 287 22.1 学习目的 287 22.2 USB概述 287 22.2.1 USB简介 287 22.2.2 USB版本 287 22.2.3 USB优点 288 22.2.4 USB系统 288 22.2.5 USB数据流 289 22.3 STM32F1 USB模块 289 22.3.1 STM32F1 USB模块特点 289 22.3.2 STM32F1 USB模块的结构 290 22.3.3 STM32F1 USB模块的功能 290 22.3.4 STM32F1 USB模块相关库函数 292 22.3.5 USB实验硬件设计 292 22.3.6 USB实验软件设计 293 22.3.7 USB实验测试结果 294 22.4 本章课后作业 295 第23章 项目实践 296 23.1 学习目的 296 23.2 项目相关知识 296 23.2.1 项目的定义及特点 296 23.2.2 项目评估标准 296 23.3 项目流程 296 23.3.1 项目规划 297 23.3.2 项目软件开发 297 23.3.3 项目硬件开发 297 23.3.4 项目文档的编写 298 23.4 基于STM32的蓝牙热敏打印机项目实践 298 23.4.1 项目特点 299 23.4.2 项目需要的工具及软件 299 23.4.3 热敏打印机的打印头性能 299 23.4.4 字库的原理与应用 304 23.4.5 蓝牙技术概述与应用 309 23.4.6 蓝牙热敏打印机硬件设计 313 23.4.7 蓝牙热敏打印机软件设计 313 23.4.8 项目实践测试结果 313 23.5 本章课后作业 313 参考文献 314
展开全部

作者简介

张叶茂,副教授、高级工程师,南宁职业技术学院智能制造学院副院长、南宁市高层次人才。获广西教学成果奖一等奖1项、二等奖2项;主持省部级以上课题3项,主持完成市厅级以上课题7项,主持完成智能产品开发与应用专业广西现代学徒制试点建设。近5年来,获省级教学能力大赛一等奖1项;授权专利20项;指导学生参加各类技能竞赛、大学生电子设计竞赛获得国家级奖励4次、省级以上奖励10余次,并被授予广西优秀指导教师称号;主编出版了《基于ARM Cortex-M3的STM32微控制器实战教程(第二版))》《C语言程序设计实用教程》《μCOS嵌入式操作系统原理与应用》等教材。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航