目录
配套课件(PPT)
源码及原理图
第1章概述(112min)
1.1理解嵌入式系统的概念
1.1.1什么是嵌入式系统
1.1.2嵌入式系统的构成原理
1.1.3嵌入式系统的分类
1.1.4嵌入式系统的处理器技术简介
1.2ARM简史
1.2.1ARM的发展历程
1.2.2ARM架构的变迁
1.2.3ARM嵌入式开发的学习路线
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.2CortexM3架构简介
2.2.1架构总览
2.2.2CortexM3的重点模块
2.2.3ARM指令集与三级流水线
2.2.4存储器映射
2.3GD32F10x对CortexM3架构的实现
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.2GPIO工作原理
3.2.1内部结构框图
3.2.2输出工作模式
3.2.3输入工作模式
3.3GPIO主要寄存器简介
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.6AFIO端口配置寄存器0(AFIO_PCF0)
3.4GPIO常用库函数介绍
3.4.1初始化函数
3.4.2输入输出控制函数
3.4.3状态查询函数
3.5GPIO案例: 按键控制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.1NVIC简介
4.2.2NVIC工作机制
4.2.3NVIC配置
4.3EXTI外部中断/事件控制器
4.3.1EXTI简介
4.3.2EXTI原理
4.3.3EXTI通用IO映像
4.3.4EXTI使用方法
4.4EXTI外部中断处理的常用库函数简介
4.4.1初始化或使能相关函数
4.4.2EXTI外部中断响应处理相关函数
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.1SysTick的工作原理
5.2.2SysTick的使用方法
5.2.3SysTick案例: SysTick控制LED闪烁
5.3实时时钟
5.3.1RTC的原理
5.3.2常用库函数
5.3.3RTC的使用方法
5.3.4RTC案例——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.2GD32F10x的串口工作原理
6.2.1USART的结构框图
6.2.2利用库函数设置和使用串口
6.3UART案例: 以串口查询方式发送数据
6.3.1案例目标
6.3.2案例方法
6.3.3案例代码
6.3.4效果分析
6.4小结
6.5练习题
6.6UART实验: UART的中断式接收
6.6.1实验目标
6.6.2实验方法分析
6.6.3实验代码
6.6.4实验现象
第7章集成电路总线I2C通信(350min)
7.1理解I2C
7.1.1I2C的物理层
7.1.2I2C的协议层
7.2GD32的I2C模块
7.2.1数据有效性
7.2.2开始与停止状态
7.2.3时钟同步和仲裁
7.2.4编程模型
7.2.5DMA模式下数据传输
7.2.6报文错误校验
7.2.7状态、错误和中断
7.3I2C案例: 软件模拟I2C控制LM75AD
7.3.1案例目标
7.3.2案例方法
7.3.3案例代码
7.3.4效果分析
7.4小结
7.5练习题
7.6I2C实验: 硬件I2C控制OLED屏显示
7.6.1实验目标
7.6.2实验方法分析
7.6.3实验代码
7.6.4实验现象
第8章串行外设SPI(252min)
8.1认识SPI
8.1.1SPI协议原理概述
8.1.2一主一从的SPI通信过程
8.1.3一主多从的SPI连接方式
8.2GD32中的SPI外设
8.2.1功能框图
8.2.2模式配置
8.3SPI案例: 软件模拟SPI读写W25Qxx
8.3.1案例目标
8.3.2案例方法
8.3.3案例代码
8.3.4效果分析
8.4小结
8.5练习题
8.6SPI案例: 硬件SPI操作W25Q32
8.6.1实验目标
8.6.2实验方法分析
8.6.3实验代码
8.6.4实验现象
第9章控制器局域网(170min)
9.1理解CAN
9.1.1CAN协议简介
9.1.2CAN协议的物理层
9.1.3CAN协议的数据链路层
9.1.4CAN的位同步
9.2GD32的CAN外设
9.2.1一般使用流程
9.2.2工作与通信模式
9.2.3数据收发
9.2.4过滤功能
9.2.5中断
9.3小结
9.4练习题
9.5CAT实验: 自回环通信模式案例
9.5.1实验目标
9.5.2实验方法分析
9.5.3实验代码
9.5.4实验现象
第10章模数转换器(142min)
10.1ADC一般概念
10.1.1模拟信号与数字信号
10.1.2模数原理概述
10.2GD32F10x的ADC外设
10.2.1ADC电源与时钟
10.2.2ADC通道和转换顺序
10.2.3运行模式
10.2.4采样时间与外部触发配置
10.3ADC库函数的使用
10.3.1常用库函数
10.3.2利用库函数实现ADC步骤
10.4小结
10.5练习题
10.6ADC实验: 测量光敏电阻的阻值
10.6.1实验目标
10.6.2实验方法分析
10.6.3实验代码
10.6.4实验现象
第11章直接数据存储DMA(160min)
11.1概述
11.2DMA控制器原理
11.2.1理解DMA框图
11.2.2MDA寄存器
11.2.3DMA传输过程
11.3GD32F10x的DMA
11.3.1GD32F10x的DMA原理框图
11.3.2DMA传输功能要点
11.3.3DMA流程解析
11.4小结
11.5练习题
11.6DMA实验: DMA ADC摇杆用法
11.6.1实验目标
11.6.2实验方法分析
11.6.3实验代码
11.6.4实验现象
第12章电机控制入门(248min)
12.1舵机
12.1.1构成原理
12.1.2使用方法
12.1.3舵机案例: 旋转编码器控制舵机旋转
12.2步进电机
12.2.1工作原理
12.2.2步进电机驱动ULN2003
12.3小结
12.4练习题
12.5步进电机实验: 步进电机正反转控制
12.5.1实验目标
12.5.2实验方法分析
12.5.3实验代码
12.5.4实验现象
参考文献