序
赞誉
前言
第1章 GD32 MCU概述1
1.1 GigaDevice公司概述1
1.2 GD32 MCU发展历程及典型应用2
1.2.1 GD32 MCU发展历程2
1.2.2 GD32 MCU典型应用6
1.3 GD32 MCU产品家族介绍8
1.4 GD32 MCU应用选型9
1.4.1 GD32 MCU型号解码9
1.4.2 GD32 MCU选型方法简介11
1.5 本章小结14
第2章 GD32 MCU快速入门与开发
平台搭建15
2.1 开发资料和软件开发平台15
2.1.1 Keil MDK开发环境介绍16
2.1.2 IAR开发环境介绍28
2.2 硬件开发平台介绍34
2.2.1 BluePill开发板硬件平台介绍34
2.2.2 GD32官方开发板介绍40
2.3 烧录调试工具介绍41
2.3.1 GD-Link烧录调试41
2.3.2 JLink烧录调试48
2.4 GD32 MCU固件库架构及
使用介绍53
2.5 本章小结55
第3章 GD32 MCU系统架构、内核及存储器系统56
3.1 GD32 MCU系统架构介绍56
3.2 GD32 MCU内核介绍58
3.3 GD32 MCU NVIC与中断系统61
3.3.1 NVIC概述61
3.3.2 中断响应序列62
3.3.3 中断配置62
3.4 GD32 MCU存储器系统64
3.4.1 存储器架构64
3.4.2 Flash操作说明69
3.5 本章小结73
第4章 GD32 MCU电源管理系统、复位和时钟系统74
4.1 GD32电源管理系统74
4.1.1 PMU简介74
4.1.2 固件库中PMU相关的
主要API78
4.1.3 实例:深度睡眠进入和退出79
4.1.4 实例:待机模式进入和退出82
4.1.5 实例:低压检测器的使用83
4.2 GD32复位和时钟系统84
4.2.1 GD32中的复位和时钟简介85
4.2.2 固件库中RCU相关的
主要API87
4.2.3 实例:时钟设置88
4.2.4 实例:PA8输出时钟91
4.3 本章小结94
第5章 GD32 MCU基础外设95
5.1 通用IO端口95
5.1.1 GD32的GPIO简介96
5.1.2 固件库中GPIO相关的
主要API97
5.1.3 实例:用GPIO点亮流水灯99
5.1.4 实例:以查询方式实现
按键输入101
5.2 外部中断105
5.2.1 GD32的EXTI简介105
5.2.2 固件库中EXTI相关的
主要API106
5.2.3 实例:以中断方式实现
按键输入107
5.3 直接内存存取109
5.3.1 GD32的DMA简介110
5.3.2 固件库中与DMA相关的
主要API110
5.3.3 实例:使用DMA在SRAM中
搬运数据112
5.3.4 实例:使用DMA从Flash到SRAM搬运数据116
5.3.5 实例:使用DMA操作
GPIO118
5.4 定时器123
5.4.1 GD32定时器的分类和介绍124
5.4.2 固件库中与定时器相关的
主要API127
5.4.3 实例:使用定时器软件延时
测量运行时间128
5.4.4 实例:使用定时器输出
PWM131
5.4.5 使用定时器捕获功能测量
外部信号频率134
5.4.6 定时器级联实验138
5.5 实时时钟144
5.5.1 GD32的RTC简介144
5.5.2 固件库中RTC相关的
主要API145
5.5.3 实例:RTC日历146
5.5.4 实例:RTC闹钟唤醒
DeepSleep154
5.6 看门狗定时器158
5.6.1 GD32的看门狗定时器简介158
5.6.2 固件库中看门狗相关的
主要API161
5.6.3 实例:独立看门狗定时器
设置162
5.6.4 实例:窗口看门狗定时器
设置164
5.7 本章小结167
第6章 GD32 MCU模拟外设168
6.1 ADC168
6.1.1 GD32的ADC简介168
6.1.2 固件库中与ADC相关的
主要API170
6.1.3 实现ADC单通道电压采集171
6.1.4 实例:内部参考电压的用法176
6.1.5 实现ADC+DMA多通道
电压采集180
6.1.6 实例:双ADC同步触发185
6.2 DAC191
6.2.1 GD32的DAC简介191
6.2.2 固件库中与DAC相关的
主要API192
6.2.3 使用DAC输出固定电压193
6.2.4 使用DAC实现一个正弦
信号发生器194
6.3 本章小结198
第7章 GD32 MCU基础通信
外设200
7.1 通用同步异步收发器200
7.1.1 异步串口简介200
7.1.2 GD32的USART模块介绍202
7.1.3 固件库中与USART相关的
主要API202
7.1.4 实例:printf函数重定向204
7.1.5 实例:半双工串口收发206
7.1.6 实例:DMA串口收发210
7.1.7 实例:串口接收超时214
7.1.8 实例:以中断方式进行串口
收发217
7.1.9 实例:串口的同步模式219
7.1.10 使用串口实现一个命令
解释器224
7.2 内部集成电路总线接口230
7.2.1 I2C接口简介230
7.2.2 GD32 I2C的主要功能231
7.2.3 I2C接口的主要API232
7.2.4 实例:I2C主从通信234
7.2.5 实例:I2C接口读写
EEPROM247
7.3 同步串行外设接口255
7.3.1 SPI简介255
7.3.2 GD32 SPI的主要功能257
7.3.3 SPI的主要API257
7.3.4 实例:SPI以查询方式进行
全双工通信259
7.3.5 实例:SPI使用DMA进行
全双工通信265
7.3.6 实例:SPI半双工主从通信273
7.3.7 实例:SPI读写GD25系列
SPI Flash278
7.4 本章小结287
第8章 GD32 MCU高级通信
外设289
8.1 CAN总线289
8.1.1 CAN总线基础知识289
8.1.2 GD32的CAN接口
主要功能294
8.1.3 CAN接口的主要API295
8.1.4 实例:回环模式收发296
8.1.5 发送特定ID的数据帧实验303
8.1.6 CAN数据帧的接收实验309
8.1.7 使用过滤器接收特定的
数据帧312
8.2 USBD317
8.2.1 USB通信基础知识317
8.2.2 USBD设备固件库架构344
8.2.3 USBD设备固件库分层文件及
库函数说明34
展开