![]()
内容推荐 本书深入浅出地讲解嵌入式系统开发的基础知识,从原理、方法、工程实践等多视角介绍ARM MCU嵌入式开发中的各种常用技术,为每个知识点配备了开发案例,使读者既能掌握工程开发方法,又能掌握技术原理,为后续整个技术生涯奠定坚实基础。 本书共12章,第1、2章讲述基本概念、开发环境准备及ARM Cortex-M3架构;第3~5章讲述基础的GPIO、中断机制和定时器机制;第6~9章讲述常用的通信方法,包括串行通信、I2C、SPI、CAN;第10章讲述ADC的原理与应用;第11章进一步讲述如何通过DMA技术进行ADC采样;第12章通过舵机、步进电机讲解GD32F10x进行电机控制的入门知识。 本书由多位拥有十多年嵌人式研发与教学经验的高校教师、企业工程师共同编写完成,所有案例都是基于国产GD32F10x系列芯片实现的,并且为每章都配套了详细的视频讲解,助力读者轻松零基础入门并精通ARM单片机开发。本书可作为高等院校和培训机构相关专业的教学参考书,也可供正在为ARM芯片选择国产替代方案的企业工程师选作技术参考书。 作者简介 高延增,2010年博士毕业于华南理工大学,其后十余年一直从事嵌入式相关的项目研发与教学工作,现为嘉应学院计算机科学与技术专业专任教师,主要从事嵌入式学习相关的内容制作与套件开发等工作。此前曾担任广州百众信息技术有限公司嵌入式研发工程师,主持研发了3D打印机云管控平台、安全生产平台、智能小家电通用控制平台等多个大中型项目。主编过《嵌入式系统开发基础教程》《数据挖掘算法导论》等书籍,所编著书籍因文笔流畅、通俗易懂、知识架构组织合理、易于教学使用等优点受到读者欢迎。 目录 第1章 概述(112min) 1.1 理解嵌入式系统的概念 1.1.1 什么是嵌入式系统 1.1.2 嵌入式系统的构成原理 1.1.3 嵌入式系统的分类 1.1.4 嵌入式系统的处理器技术简介 1.2 ARM简史 1.2.1 ARM的发展历程 1.2.2 ARM架构的变迁 1.2.3 ARM嵌入式开发的学习路线 1.3 准备工作 1.3.1 教材配套开发板介绍 1.3.2 开发环境准备 1.3.3 创建GD32F10x模板工程——点亮一个LED 1.4 小结 1.5 练习题 1.6 实验:更改模板工程软件,点亮两个LED 第2章 GD32F10x的架构(99min) 2.1 图灵机与计算机架构 2.1.1 图灵机简介 2.1.2 冯·诺依曼结构与哈佛结构 2.1.3 算术逻辑部件与锁存器 2.2 Cortex-M3架构简介 2.2.1 架构总览 2.2.2 Cortex-M3的重点模块 2.2.3 ARM指令集与三级流水线 2.2.4 存储器映射 2.3 GD32F10x对Cortex-M3架构的实现 2.3.1 总体架构 2.3.2 存储器与映射 2.3.3 启动配置 2.3.4 电源控制 2.3.5 复位 2.3.6 时钟控制 2.4 小结 2.5 练习题 第3章 通用输入/输出端口GPIO(184min) 3.1 芯片的常用封装 3.2 GPIO工作原理 3.2.1 内部结构框图 3.2.2 输出工作模式 3.2.3 输入工作模式 3.3 GPIO主要寄存器简介 3.3.1 端口控制寄存器 3.3.2 端口输入状态寄存器(GPIOx_ISTAT,x=A..G) 3.3.3 端口输出控制寄存器(GPIOx_OCTL,x=A..G) 3.3.4 端口位操作与位清除寄存器 3.3.5 端口配置锁定寄存器(GPIOx_LOCK,x=A,B) 3.3.6 AFIO端口配置寄存器0(AFIO_PCF0) 3.4 GPIO常用库函数介绍 3.4.1 初始化函数 3.4.2 输入输出控制函数 3.4.3 状态查询函数 3.5 GPIO案例:按键控制LED亮灭 3.5.1 案例需求 3.5.2 案例方法 3.5.3 案例代码 3.5.4 效果分析 3.6 小结 3.7 练习题 3.8 实验:物理按键软件消抖 3.8.1 实验目标 3.8.2 实验方法分析 3.8.3 实验代码 3.8.4 实验现象 第4章 中断和事件(107min) 4.1 中断的概念 4.2 嵌套向量中断控制器NVIC 4.2.1 NVIC简介 4.2.2 NVIC工作机制 4.2.3 NVIC配置 4.3 EXTI外部中断/事件控制器 4.3.1 EXTI简介 4.3.2 EXTI原理 4.3.3 EXTI通用IO映像 4.3.4 EXTI使用方法 4.4 EXTI外部中断处理的常用库函数简介 4.4.1 初始化或使能相关函数 4.4.2 EXTI外部中断响应处理相关函数 4.5 中断案例:中断式触摸按键控制LED 4.5.1 案例需求 4.5.2 案例方法 4.5.3 案例代码 4.5.4 效果分析 4.6 小结 4.7 练习题 4.8 实验:上升沿和双边沿触发的中断 4.8.1 实验目标 4.8.2 实验方法分析 4.8.3 实验代码 4.8.4 实验现象 第5章 定时器(439min) 5.1 理解定时器 5.1.1 可编程定时/计数器 5.1.2 理解GD32F10x的时钟树 5.2 系统滴答定时器SysTick 5.2.1 SysTick的工作原理 5.2.2 SysTick的使用方法 5.2.3 SysTick案例:SysTick控制LED闪烁 5.3 实时时钟 5.3.1 RTC的原理 5.3.2 常用库函数 5.3.3 RTC的使用方法 5.3.4 RTC案例——RTC日历 5.4 看门狗 5.4.1 独立看门狗 5.4.2 窗口看门狗 5.4.3 看门狗案例——独立看门狗使用示例 5.5 定时器 5.5.1 基本定时器 5.5.2 通用定时器 5.5.3 高级定时器 5.5.4 定时器使用 5.6 小结 5.7 练习题 5.8 实验:PWM实现呼吸灯效果 5.8.1 实验目标 5.8.2 实验方法分析 5.8.3 实验代码 5.8.4 实验现象 第6章 通用同步/异步串行通信USART(160min) 6.1 串行通信原理概述 6.1.1 串行通信的硬件连接 6.1.2 异步串行通信的数据帧 6.2 GD32F10x的串口工作原理 6.2.1 USART的结构框图 6.2.2 利用库函数设置和使用串口 6.3 UART案例:以串口查询方式发送数据 6.3.1 案例目标 6.3.2 案例方法 6.3.3 案例代码 6.3.4 效果分析 6.4 小结 6.5 练习题 6.6 UART实验:UART的中断式接收 6.6.1 实验目标 6.6.2 实验方法分析 6.6.3 实验代码 6.6.4 实验现象 第7章 集成电路总线I2C通信(350min) 7.1 理解I2C 7.1.1 I2C的物理层 7.1.2 I2C的协议层 7.2 GD32的I2C模块 7.2.1 数据有效性 7.2.2 开始与停止状态 7.2.3 时钟同步和仲裁 7.2.4 编程模型 7.2.5 DMA模式下数据传输 7.2.6 报文错误校验 7.2.7 状态、错误和中断 7.3 I2C案例:软件模拟I |