| 作者 |
| 工业和信息化部人才交流中心 |
| 丛书名 |
| 物联网与人工智能应用开发丛书 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121340499 |
| 简要 |
| 简介 |
| 内容简介 本书围绕SDK的开发展开,通过分析MCU内核与外设工作原理,结合API介绍各个外设的编程和应用。希望通过本书,使传统单片机工程师面向寄存器的开发思维得到一些转变,能够尝试运用成熟的软件框架来高效地完成应用开发。本书可供具有一定C语言知识和硬件基础的嵌入式系统工程师使用,同时也可以作为高等院校电子信息工程相关专业的教学参考书。 |
| 目录 |
| 第1章 微控制器开发基础 001 1.1 微控制器的发展与趋势 002 1.2 ARM Cortex-M微控制器内核 006 1.2.1 ARM与Cortex处理器的发展 006 1.2.2 Cortex-M家族成员 007 1.2.3 Cortex-M内核技术特点与优势 010 1.3 CMSIS微控制器外设库 014 1.4 Cortex-M集成开发环境和调试工具 018 1.4.1 集成开发环境 018 1.4.2 调试工具 019 1.5 恩智浦LPC5411X系列低功耗通用微控制器 021 1.5.1 家族成员与功能概要 021 1.5.2 系统框图与内存映射 023 1.5.3 评估板与扩展板介绍 024 1.6 小结 025 第2章 MCUXpresso软件与工具开发套件 027 2.1 MCUXpresso IDE集成开发环境 028 2.1.1 MCUXpresso IDE的主要特性 029 2.1.2 安装MCUXpresso IDE 029 2.1.3 初识MCUXpresso IDE 031 2.2 MCUXpresso Config Tools配置工具 033 2.2.1 SDK生成器工具 033 2.2.2 Pins Tool引脚分配工具 036 2.2.3 Clocks Tool时钟配置工具 037 2.3 MCUXpresso SDK软件开发套件 038 2.3.1 架构分析 038 2.3.2 文件 040 2.3.3 外设驱动命名与依赖 041 2.3.4 外设驱动API 043 2.4 实例:Hello world 052 2.5 小结 058 第3章 微控制器的启动过程 059 3.1 上电启动后硬件自动执行的操作序列 061 3.2 从复位中断向量进入C程序的世界 062 3.2.1 复位中断函数概述 062 3.2.2 详解LPC54114的启动代码 064 3.3 LPC54114的BootLoader 075 3.3.1 BootLoader概述 075 3.3.2 BootLoader在LPC54114上的应用 076 3.4 小结 081 第4章 时钟子系统与管理 083 4.1 LPC54114的片上时钟系统 084 4.1.1 时钟源 085 4.1.2 上电后默认情况下的时钟系统 086 4.1.3 使用PLL获取更高频率的时钟信号 087 4.2 MCUXpresso SDK时钟管理API 090 4.2.1 常用时钟管理API 090 4.2.2 MCUXpresso SDK应用程序中配置时钟的典型框架 094 4.3 MCUXpresso时钟配置工具Clock Tool简介 095 4.3.1 概述 095 4.3.2 在Clock Tool中创建LPC54114Xpresso板配置工程 097 4.4 实例:使用PLL倍频输出产生系统时钟 102 4.5 小结 106 第5章 IO子系统与中断 107 5.1 IO子系统的相关硬件模块 108 5.1.1 IOCON IO引脚配置模块 108 5.1.2 GPIO通用输入/输出模块 109 5.1.3 PINT 引脚中断模块 110 5.1.4 INPUT MUX 输入复用器 110 5.2 MCUXpresso SDK中的GPIO与PINT驱动 111 5.2.1 GPIO驱动API 112 5.2.2 PINT驱动API 113 5.3 MCUXpresso时钟配置工具Pin Tool应用 116 5.3.1 概述 116 5.3.2 在MCUXpresso SDK工程中用Pin Tool分配引脚功能 117 5.4 实例:通过按键控制LED 121 5.5 小结 125 第6章 DMA原理与应用 127 6.1 DMA控制器概述 128 6.2 DMA特性和内部框图 128 6.2.1 LPC5411x DMA特性 128 6.2.2 DMA内部框图 129 6.3 DMA 外部引脚描述 130 6.4 DMA的几个概念和功能说明 131 6.4.1 DMA的工作原理 131 6.4.2 DMA请求和触发 131 6.4.3 DMA传输描述符 134 6.4.4 DMA传输模式 136 6.4.5 DMA低功耗模式 139 6.5 DMA模块的SDK驱动介绍 140 6.6 实例:从DMA Memory到Memory的数据传输 144 6.6.1 环境准备 145 6.6.2 代码分析 145 6.6.3 实验现象 148 6.7 小结 149 第7章 ADC数模转换器原理与应用 151 7.1 逐次逼近型ADC工作原理和过程 153 7.2 ADC数模转换器常用性能指标 154 7.3 ADC特性和内部框图 155 7.3.1 ADC特性 155 7.3.2 ADC内部框图 156 7.4 ADC外部引脚描述 156 7.5 ADC功能说明 157 7.5.1 ADC时钟 157 7.5.2 转换序列 158 7.5.3 触发转换 159 7.5.4 转换模式 159 7.5.5 转换输出 160 7.5.6 偏移误差校准 161 7.6 ADC模块的SDK驱动介绍 161 7.7 实例:使用ADC测量内部温度 164 7.7.1 环境准备 164 7.7.2 代码分析 165 7.7.3 现象描述 170 7.8 小结 171 第8章 USART异步串行通信接口原理与应用 173 8.1 USART控制器概述 174 8.2 USART模块特性和内部框图 175 8.2.1 LPC5411x USART特性 175 8.2.2 LPC5411x USART内部框图 176 8.3 Flexcomm接口概述 176 8.3.1 Flexcomm功能说明 177 8.3.2 Flexcomm内部框图 177 8.4 USART外部引脚描述 178 8.4.1 USART模块引脚功能定义 178 8.4.2 USART引脚配置说明 179 8.5 USART基本功能说明 179 8.5.1 USART模块初始化 180 8.5.2 USART的时钟源与波特率配置 180 8.5.3 收发控制 182 8.5.4 低功耗模式下USART的唤醒 182 8.6 USART模块的SDK驱动介绍 183 8.7 USART数据收发 189 8.7.1 环境准备 190 8.7.2 代码分析 191 8.7.3 现象描述 195 8.8 小结 195 第9章 SPI同步串行通信接口原理与应用 197 9.1 SPI控制器概述 198 9.2 SPI特性和内部框图 198 9.2.1 LPC5411x SPI特性 198 9.2.2 SPI内部框图 199 9.3 SPI 外部引脚描述 200 9.4 SPI功能说明 201 9.4.1 SPI工作模式 201 9.4.2 SPI时钟源和数据传输速率 203 9.4.3 超出16位的数据传输 204 9.4.4 低功耗模式下SPI唤醒 205 9.4.5 SPI数据帧延迟 205 9.5 SPI模块的SDK驱动介绍 208 9.6 实例:SPI读/写外部Flash 214 9.6.1 实验目的和环境准备 215 9.6.2 代码分析 216 9.6.3 实验现象 224 9.7 小结 225 第10章 I2C总线接口与应用 227 10.1 I2C控制器概述 228 10.2 I2C特性和内部框图 229 10.2.1 LPC5411x I2C特性 229 10.2.2 I2C内部框图 229 10.3 I2C外部引脚描述 230 10.4 I2C功能说明 232 10.4.1 I2C协议简介 232 10.4.2 I2C总线速率和时钟延伸 233 10.4.3 I2C的寻址方式和低功耗唤醒 235 10.4.4 I2C的死锁和超时机制 238 10.5 I2C模块的SDK驱动 241 10.6 实例:I2C中断方式实现数据收发 249 10.6.1 实验目的和硬件电路设计 249 10.6.2 实例软件设计 250 10.6.3 main文件 251 10.6.4 现象描述 255 10.7 小结 255 第11章 I2S总线协议与应用 257 11.1 I2S总线协议简介 258 11.2 I2S特性和内部框图 260 11.2.1 I2S特性 260 11.2.2 I2S内部框图 261 11.3 I2S外部引脚描述 262 11.4 I2S功能说明 262 11.4.1 I2S时钟 263 11.4.2 数据速率 263 11.4.3 数据帧格式和模式 264 11.4.4 FIFO缓冲区的使用方法 266 11.5 I2S模块的SDK驱动介绍 267 11.6 实例:使用I2S中断方式传输播放音频 271 11.6.1 环境准备 271 11.6.2 代码分析 272 11.6.3 现象描述 276 11.7 小结 277 第12章 FlashlAP在应用编程模块的应用 279 12.1 IAP在应用编程的通用基础知识 280 12.2 IAP命令执行详解 280 12.3 IAP模块的SDK驱动介绍 283 12.4 使用IAP驱动读/写内部Flash 284 12.4.1 环境准备 284 12.4.2 代码分析 284 12.4.3 现象描述 287 12.5 小结 287 第13章 FreeRTOS实时多任务操作系统原理与应用 289 13.1 嵌入式操作系统综述 290 13.1.1 裸跑与使用操作系统的对比 290 13.1.2 嵌入式操作系统基本概念 291 13.2 FreeRTOS实时多任务操作系统介绍 294 13.2.1 FreeRTOS实时多任务操作系统特色 294 13.2.2 FreeRTOS基本功能解读 295 13.2.3 FreeRTOS的软件授权 298 13.3 FreeRTOS的底层结构与ARM平台的移植 298 13.3.1 FreeRTOS源码结构分析 299 13.3.2 内核配置头文件 301 13.3.3 移植宏定义文件 302 13.3.4 ARM平台的移植实现 304 13.3.5 tick定时器——fsl_tickless相关内容说明 308 13.3.6 portasm.s汇编 310 13.4 MCUXpresso SDK中基于FreeRTOS的外设驱动 310 13.4.1 具有操作系统功能的驱动介绍 310 13.4.2 FreeRTOS下的USART发送与接收 312 13.5 LPC5411x SDK中的FreeRTOS例程分析 315 13.5.1 环境准备 315 13.5.2 Main函数分析 315 13.5.3 FreeRTOS的多任务代码分析 317 13.5.4 操作系统环境的调试与实验说明 320 13.6 小结 321 第14章 异构双核处理器框架与应用 323 14.1 多处理器计算 324 14.2 异构双核 325 14.2.1 双核总线架构 325 14.2.2 内核管理 326 14.2.3 内核间通信 327 14.2.4 双核程序布局 327 14.3 双核应用分析 329 14.3.1 基于双核的安全启动 329 14.3.2 运用双核进行显示后处理 330 14.4 多处理器系统服务框架 331 14.4.1 多核管理模块(mcmgr) 331 14.4.2 轻型远端处理器通信框架(RPMsg-Lite) 335 14.4.3 嵌入式远程过程调用(eRPC) 337 14.5 双核应用开发 339 14.5.1 工程配置 339 14.5.2 预定义宏 340 14.5.3 双核启动 341 14.6 实例:双核远程过程调用 346 14.6.1 环境准备 346 14.6.2 代码分析 347 14.6.3 实验结果 349 14.7 小结 351 第15章 微控制器低功耗设计 353 15.1 系统能耗分析 355 15.1.1 动态功耗分析 356 15.1.2 动态功耗指标 357 15.1.3 静态功耗分析 360 15.1.4 静态功耗指标 362 15.1.5 休眠和唤醒 363 15.1.6 系统能耗估算 363 15.2 微控制器低功耗特性 365 15.2.1 系统模块电压调节 365 15.2.2 数字外设时钟控制 366 15.3 微控制器低功耗应用设计方法 366 15.3.1 硬件设计 366 15.3.2 软件设计 367 15.4 MCUXPRESSO SDK功耗管理库 374 15.5 小结 376 第16章 基于LPC54114和SDK的可穿戴设备原型设计 379 16.1 硬件介绍 380 16.1.1 硬件框图 381 16.1.2 主要元器件 381 16.2 固件与应用设计 383 16.2.1 软件架构 383 16.2.2 主流程 384 16.2.3 传感器模块 387 16.2.4 人机交互模块 391 16.2.5 用户输入模块 400 16.3 功能演示 402 16.4 小结 404 |