教育>本科研究生>电子信息类
GD32F3开发进阶教程——基于GD32F303ZET6  

GD32F3开发进阶教程——基于GD32F303ZET6  "

作者:钟世达,郭文波
ISBN:9787121437250
定价:¥75.0
字数:563千字
页数:352
出版时间:2022-07
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书通过17个实验讲解GD32F303ZET6微控制器的LCD显示、触摸屏、内部温度传感器、外部温湿度传感器、外部SRAM、外部NAND Flash、内存管理、SD卡、FatFS文件系统、中文显示、CAN通信、以太网通信、USB通信、MP3播放、录音播放、摄像头,以及IAP在线升级的原理与应用。作为拓展,另有5个实验分别介绍RS232通信、RS485通信、呼吸灯、电容触摸按键和读写内部Flash,可参见本书配套资料包。全书程序代码的编写规范均遵循《C语言软件设计规范(LY-STD001—2019)》。各实验采用模块化设计,以便应用于实际项目和产品中。本书配有丰富的资料包,涵盖CD32F3苹果派开发板原理图、例程、软件包、PPT等,资料包将持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。本书既可以作为高等院校电子信息、自动化等专业微控制器相关课程的教材,也可以作为微控制器系统设计及相关行业工程技术人员的入门培训用书。

前言

本书是一本介绍微控制器程序设计开发的书籍,对应的硬件平台为GD32F3苹果派开发板,开发板的主控芯片为GD32F303ZET6(封装为LQFP-144),由北京兆易创新科技股份有限公司(以下简称“兆易创新”)研发并推出。兆易创新的GD32 MCU是中国高性能通用微控制器领域的领跑者,主要体现在以下几点:(1)GD32 MCU是中国最大的ARM? MCU产品家族,已经成为中国32位通用MCU市场的主流之选;(2)兆易创新在中国第一个推出基于ARM Cortex-M3、Cortex-M4、Cortex-M23和Cortex-M33内核的MCU产品系列;(3)全球首个RISC-V内核通用32位MCU产品系列出自兆易创新;(4)在中国32位MCU厂商排名中,兆易创新连续五年为本土第一。 从2021年开始,兆易创新的GD32系列MCU在32位通用微控制器的市场占有率升至第二位,仅次于意法半导体。 兆易创新致力于打造“MCU百货商店”规划发展蓝图,以“产品+生态”的全方位服务向全球市场用户提供更加智能化的嵌入式开发和解决方案。我们希望通过编写本书,向广大高校师生和工程师介绍优秀的国产MCU产品,为推动国产芯片的普及贡献微薄之力。 GD32F3苹果派开发板配套有2本教材,分别是《GD32F3开发基础教程—基于GD32F303ZET6》和《GD32F3开发进阶教程—基于GD32F303ZET6》。本书是“进阶教程”,通过一系列进阶实验,如EXMC与LCD显示实验、触摸屏实验、内部温度与外部温湿度监测实验、读写SRAM实验、读写NAND Flash实验、内存管理实验、读写SD卡实验、FatFs与读写SD卡实验、中文显示实验、CAN通信实验、以太网通信实验、USB从机实验、MP3实验、录音播放实验、摄像头实验、照相机实验、IAP在线升级应用实验,由浅入深地介绍GD32F303ZET6的复杂外设,及其结构和设计开发过程。作为拓展,另有5个实验分别介绍RS232通信、RS485通信、呼吸灯、电容触摸按键和读写内部Flash,可参见本书配套资料包。所有实验均包含了实验内容、设计思路、代码解析,每章的最后还安排了一个或若干个任务,作为本章实验的延伸和拓展,用于验证读者是否掌握本章知识。 GD32F3苹果派开发板基于兆易创新的GD32F303ZET6,CPU内核为Cortex-M4,最大主频为120MHz,内部Flash和SRAM容量分别为512KB和64KB,有112个GPIO。开发板通过12V电源适配器供电,板载GD-Link和USB转串口均基于Type-C接口设计,基于LED、独立按键、触摸按键、蜂鸣器等基础模块可以开展简单实验,基于USB SLAVE、以太网、触摸屏、摄像头等高级模块可以开展复杂实验,另外,还可以通过EMA/EMB/EMC接口,开展基于串口、SPI、I2C等通信协议的实验,比如红外232、485、OLED、蓝牙、Wi-Fi、传感器等。 本书推荐的参考资料主要包括《GD32F303xx数据手册》《GD32F30x用户手册(中文版)》《GD32F30x固件库用户指南》《Cortex-M4器件用户指南》《CortexM3与M4权威指南》。其中,前三本为兆易创新的官方资料,GD32的外设架构及其寄存器,以及操作寄存器的固件库函数等可以查看这三本资料;后两本是ARM公司的官方资料,与Cortex-M4内核相关的CPU架构、指令集、NVIC、功耗管理、MPU、FPU等可以查看这两本资料。限于篇幅,本书只讲解实验原理和应用,并简单介绍一些重要的寄存器和固件库函数,如果想要深入学习GD32,读者可深入查阅以上五本资料。 本书的特点如下: (1)本书配套的所有例程严格按照统一的工程架构设计,每个子模块按照统一标准设计;代码严格按照《C语言软件设计规范(LY-STD001—2019)》设计,如排版和注释规范、文件和函数命名规范等。 (2)本书配套的所有例程遵循“高内聚低耦合”的设计原则,有效提高了代码的可重用性及可维护性。 (3)“本章实验”引导读者开展实验,并通过代码解析快速理解例程;“本章任务”作为实验的延伸和拓展,通过实战让读者巩固实验中的知识点。 (4)本书配套有丰富的资料包,包括GD32F3苹果派开发板原理图、例程、软件包、PPT讲义、参考资料等。这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。 对于初学者,不建议直接学习《GD32F3开发进阶教程—基于GD32F303ZET6》,可以先从《GD32F3开发基础教程—基于GD32F303ZET6》开始,完成基础教程学习之后,再开启进阶教程的学习。在进入进阶教程学习前,建议先准备一套GD32F3苹果派开发板,直接从代码入手,将教材和参考资料当作工具书,在无法理解代码时再查阅。只要坚持反复实践,并结合教材和参考资料中的知识深入学习,工程能力即可得到大幅提升。另外,完成书上的本章任务之后,如果还需要进一步提升嵌入式设计水平,建议自行设计或采购一些模块,比如指纹识别模块、手势识别模块、电机驱动模块、5G通信模块等,基于GD32F3苹果派开发板,开展一些拓展实验或综合实验。 钟世达和郭文波共同策划了本书的编写思路,指导全书的编写,对全书进行统稿,并参与了本书的编写。本书配套的GD32F3苹果派开发板和例程由深圳市乐育科技有限公司开发。北京兆易创新科技股份有限公司的金光一、徐杰同样为本书的编写提供了充分的技术支持。电子工业出版社张小乐老师为本书的出版做了大量的编辑和审校工作。在此一并致以衷心的感谢! 由于编者水平有限,书中难免有不成熟和错误的地方,恳请读者批评指正。读者反馈发现的问题、获取相关资料或遇实验平台技术问题,可发邮件至邮箱:ExcEngineer@163.com。

目录

第1章 EXMC与LCD显示实验 1 1.1 实验内容 1 1.2 实验原理 1 1.2.1 LCD显示模块 1 1.2.2 NT35510的显存 3 1.2.3 NT35510常用指令 3 1.2.4 EXMC简介 6 1.2.5 LCD驱动流程 11 1.3 实验代码解析 11 1.3.1 EXMC文件对 11 1.3.2 LCD文件对 14 1.3.3 Main.c文件 21 1.3.4 实验结果 23 本章任务 23 本章习题 23 第2章 触摸屏实验 24 2.1 实验内容 24 2.2 实验原理 24 2.2.1 触摸屏分类 24 2.2.2 投射式触摸屏工作原理 24 2.2.3 GT1151Q芯片 25 2.2.4 GT1151Q常用寄存器 26 2.3 实验代码解析 28 2.3.1 GT1151Q文件对 28 2.3.2 Touch文件对 33 2.3.3 Canvas文件对 38 2.3.4 Main.c文件 41 2.3.5 实验结果 42 本章任务 42 本章习题 42 第3章 内部温度与外部温湿度监测实验 43 3.1 实验内容 43 3.2 实验原理 43 3.2.1 内部温度模块 43 3.2.2 温湿度传感器SHT20 43 3.2.3 SHT20传感器电路 44 3.2.4 SHT20通信 44 3.2.5 外部温湿度计算 45 3.3 实验代码解析 45 3.3.1 ADC文件对 45 3.3.2 InTemp文件对 47 3.3.3 SHT20文件对 48 3.3.4 TempHumidityTop文件对 51 3.3.5 Main.c文件 52 3.3.6 实验结果 52 本章任务 53 本章习题 53 第4章 读写SRAM实验 54 4.1 实验内容 54 4.2 实验原理 54 4.2.1 存储器分类 54 4.2.2 内部SRAM相关结构和读写过程 54 4.2.3 外部SRAM相关结构与读写过程 55 4.3 实验代码解析 58 4.3.1 ReadwriteSRAM文件对 58 4.3.2 EXMC.c文件 62 4.3.3 Main.c文件 64 4.3.4 实验结果 65 本章任务 65 本章习题 65 第5章 读写NAND Flash实验 66 5.1 实验内容 66 5.2 实验原理 66 5.2.1 Flash简介 66 5.2.2 HY27UF081G2A芯片简介 67 5.2.3 ECC算法 67 5.2.4 FTL原理 69 5.2.5 HY27UF081G2A芯片通信方式 70 5.2.6 NAND Flash的读写操作 71 5.3 实验代码解析 71 5.3.1 ReadwriteNandFlash文件对 71 5.3.2 NandFlash文件对 75 5.3.3 FTL文件对 83 5.3.4 Main.c文件 92 5.3.5 实验结果 93 本章任务 93 本章习题 94 第6章 内存管理实验 95 6.1 实验内容 95 6.2 实验原理 95 6.2.1 分块式内存管理原理 95 6.2.2 内存分配与释放流程 96 6.3 实验代码解析 98 6.3.1 Malloc文件对 98 6.3.2 MallocTop文件对 105 6.3.3 Main.c文件 110 6.3.4 实验结果 111 本章任务 111 本章习题 112 第7章 读写SD卡实验 113 7.1 实验内容 113 7.2 实验原理 113 7.2.1 SDIO模块 113 7.2.2 SDIO结构框图 114 7.2.3 SD卡结构框图 114 7.2.4 SDIO传输内容 115 7.2.5 SD卡状态信息 116 7.2.6 SD卡操作模式 117 7.2.7 SDIO总线协议 119 7.2.8 SDIO数据包格式 119 7.3 实验代码解析 120 7.3.1 ReadWriteSDCard文件对 120 7.3.2 SDCard.c文件 127 7.3.3 Main.c文件 128 7.3.4 实验结果 129 本章任务 130 本章习题 130 第8章 FatFs与读写SD卡实验 131 8.1 实验内容 131 8.2 实验原理 131 8.3 实验代码解析 136 8.3.1 ffconf.h文件 136 8.3.2 diskio.c文件 137 8.3.3 ReadBookByte文件对 141 8.3.4 FatFSTest文件对 145 8.3.5 ProcKeyOne.c文件 151 8.3.6 Main.c文件 152 8.3.7 实验结果 153 本章任务 153 本章习题 153 第9章 中文显示实验 154 9.1 实验内容 154 9.2 实验原理 154 9.2.1 字符编码 154 9.2.2 字模和字库的概念 155 9.2.3 LCD显示字符的流程 155 9.3 实验代码解析 156 9.3.1 FontLib文件对 156 9.3.2 LCD文件对 162 9.3.3 FatFSTest.c文件 164 9.3.4 GUIPlatform.c文件 166 9.3.5 实验结果 166 本章任务 166 本章习题 166 第10章 CAN通信实验 167 10.1 实验内容 167 10.2 实验原理 167 10.2.1 CAN模块 167 10.2.2 CAN协议简介 168 10.2.3 GD32F30x系列微控制器的CAN外设简介 173 10.2.4 CAN数据接收和数据发送路径 175 10.2.5 CAN部分固件库函数 177 10.3 实验代码解析 180 10.3.1 CAN文件对 180 10.3.2 Main.c文件 186 10.3.3 实验结果 187 本章任务 189 本章习题 189 第11章 以太网通信实验 190 11.1 实验内容 190 11.2 实验原理 190 11.2.1 以太网模块 190 11.2.2 DM9000简介 190 11.2.3 LwIP简介 192 11.2.4 网络协议简介 192 11.3 实验代码解析 194 11.3.1 DM9000文件对 194 11.3.2 Main.c文件 207 11.3.3 实验结果 208 本章任务 211 本章习题 211 第12章 USB从机实验 212 12.1 实验内容 212 12.2 实验原理 212 12.2.1 USB模块 212 12.2.2 USB协议简介 212 12.2.3 USB拓扑结构 213 12.2.4 USB电气特性 213 12.2.5 USB描述符 214 12.2.6 HID协议 217 12.2.7 USB通信协议 218 12.2.8 USB枚举 221 12.2.9 USBD模块简介 221 12.3 实验代码解析 222 12.3.1 hid_core文件对 222 12.3.2 Keyboard文件对 227 12.3.3 KeyboardTop.c文件 231 12.3.4 Main.c文件 233 12.3.5 实验结果 234 本章任务 234 本章习题 235 第13章 MP3实验 236 13.1 实验内容 236 13.2 实验原理 236 13.2.1 VS1053b芯片 236 13.2.2 音频电路原理图 236 13.2.3 VS1053b芯片数据传输 238 13.2.4 VS1053b芯片寄存器 239 13.2.5 VS1053b芯片工作过程 239 13.3 实验代码解析 243 13.3.1 VS1053文件对 243 13.3.2 MP3Player文件对 252 13.3.3 AudioTop.c文件 263 13.3.4 实验结果 264 本章任务 266 本章习题 266 第14章 录音播放实验 267 14.1 实验内容 267 14.2 实验原理 267 14.2.1 WAV文件格式 267 14.2.2 VS1053b芯片录音功能 269 14.2.3 音频电路录音部分原理图 269 14.3 实验代码解析 270 14.3.1 Recorder文件对 270 14.3.2 RecordPlayer文件对 277 14.3.3 AudioTop.c文件 282 14.3.4 实验结果 284 本章任务 285 本章习题 285 第15章 摄像头实验 286 15.1 实验内容 286 15.2 实验原理 286 15.2.1 OV7725简介 286 15.2.2 摄像头接口电路原理图 286 15.2.3 摄像头功能模块 287 15.2.4 SCCB协议 288 15.2.5 图像的存储和读取 292 15.3 实验代码解析 296 15.3.1 OV7725文件对 296 15.3.2 Camera文件对 304 15.3.3 SCCB文件对 308 15.3.4 Main.c文件 312 15.3.5 实验结果 313 本章任务 313 本章习题 313 第16章 照相机实验 314 16.1 实验内容 314 16.2 实验原理 314 16.2.1 图片格式简介 314 16.2.2 BMP编码简介 314 16.2.3 BMP图片的存储 317 16.3 实验代码解析 317 16.3.1 BMPEncoder文件对 317 16.3.2 Camera.c文件 324 16.3.3 实验结果 325 本章任务 325 本章习题 325 第17章 IAP在线升级应用实验 326 17.1 实验内容 326 17.2 实验原理 326 17.2.1 微控制器编程方式 326 17.2.2 程序执行流程 327 17.2.3 用户程序生成 328 17.3 实验代码解析 330 17.3.1 IAP文件对 330 17.3.2 Main.c文件 336 17.3.3 实验结果 337 本章任务 338 本章习题 338 参考文献 339

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个