目前网络上的有关GD32的教程,我有查看过其中一部分,多数内容不够详细或不讲解替换芯片后的思路方法,使初学者在更换型号后,完全么得思路,此外网络资源中还存在完全抄袭的现象。笔者的本次内容特点有:优先使用原始资料(厂家直接提供的资料),在建立工程的步骤中会指出不同型号的MCU对操作产生的差异。希望各位读者既能得"鱼",亦能习"渔"。
本次内容提纲如下:
学习国产MCU的准备工作
分析各类手册
01准备工作1. 一份开发板套件
本次使用的是一块以GD32F103RCT6为主控的开发板,在某宝商购买,价格在50~60元。需要的朋友可以自行在某宝上搜索“GD32开发板”即可找到同款,不过新手还需要购买一个调试器配套使用。芯片型号一般会刻在芯片上方,购买开发板后找到主控芯片,一般都可以看到其型号。不过市场上的嵌入式产品中,厂商为了防止被竞争对手白嫖信息、复刻开发板,可能会将芯片的表面标记磨平。
2. 获取资料获取思路很简单,根据供求关系。资料来源有两个:一是卖给客户开发板的某宝商家,另一个是芯片的生产厂商。为了更好模拟初次接触新型号芯片时场景,本次我们优先选择从芯片的生产厂商获取资料,直接打开浏览器,搜索“gd32官网”,之后可以进入到兆易创新的官网,找到下载界面,网址如下:http://www.gd32mcu.com/cn/download
到此步骤,发现文件、分类众多,如何有效筛选资料?参考以下思路: 思路1:基于型号选资料,当前MCU型号为GD32F103RCT6,故只找名称中涵盖该型号的资料。因为GD32芯片资料有借鉴STM32芯片资料,所以GD32芯片的命名方式同STM32,也就是说名称中F表示“通用型”,103是一种具体的子型号。思路2:找MCU开发资料的最核心部分,即主控芯片的数据手册、参考手册,开发板的原理图,主控芯片的固件库。
基于以上思路,现在开始下载资料。Step1,在官网中搜索“GD32F103”,找到芯片的数据手册,并进行下载。
此步骤完成后,获得数据手册,这份手册会介绍本芯片的特有参数、资源信息。
Step2,在官网搜索“GD32F10x”,在应用笔记中找到参考手册(在某些芯片资料中,文件名不一定叫做“参考手册reference manual”而是命名为“用户手册User Manual” 或 “指导guide manual”,这些本质上类似)。
此步骤完成后,获得用户手册,这份手册会介绍GD32F10x系列芯片的每种外设资源如何使用;同时本次搜索还可以获取到GD32F10x库函数使用指南,这份手册会介绍库函数如何使用。
Step3,开发板的原理图,由于本次笔者使用开发板并不是由兆易创新公司制作(但是主控芯片是由该公司制作),所以此资料只能找某宝的开发板商家获取。不过开发板原理图对于新建工程影响不大。
Step4,主控芯片的固件库,仍在官网搜索“GD32F10x”,在应用软件页面,找到固件库并下载。
此步骤完成后,获得GD32F10x的固件库,这个压缩包主要包含GD32F10x系列芯片的库函数相关文件。对于一款新型的MCU的开发,一般编程方法只有两种:寄存器编程或库函数编程。前者难但是学得更透更深入,后者厂家则是在前者基础上将常用的操作封装为函数,后者学习起来更容易一些。总之,两种编程方法各有利弊吧。
02分析手册1. 数据手册Data Sheet芯片数据手册会包含本型号芯片的特有参数,从实际开发的流程来看,在产品设计的初期需要评估主控芯片的所需要具备的资源,从而进行主控芯片的选型,所以理解当前使用的MCU的资源非常重要!重点查看芯片的数据手册,打开刚才下载好的芯片数据手册,找到正文开始的位置。
可以看到GD32F103xx系列的芯片采用ARM-cortex-M3架构,主频可达108MHz。而ST公司的STM32F103xx系列芯片的主频只有72MHz。一般,主频越高,执行相同指令所需要的时间就越短,相当于芯片反应更迅速。接下来继续阅读芯片数据手册,找出本次使用主控GD32F103RCT6的资源情况。
因为表格第一行写的内容为“GD32F103xx”,结合本次使用的型号,可知应该查找RC所在列。故可以得到以下信息:主控芯片的Flash大小为256KB,SRAM为48KB,包含4个通用定时器,2个高级定时器,1个SysTick定时器,2个基本定时器,2个看门狗,1个实时时钟,3个USART接口,2个UART接口,2个I2C接口,3个SPI接口......等(参考表格内容阅读即可)。
2. 用户手册User Manual一般用户手册针对的芯片范围要比数据手册对应的芯片范围较大一些。比如本次获取的资料分别是GD32F10x用户手册 和 GD32F103xx数据手册。用户手册会介绍本类芯片的各种外设有哪些功能、寄存器表以及如何使用这些外设。
对于此文档,笔者的建议是先不去看它,因为内容过多,且每个章节之间相对独立。在确定实验目标之后再阅读,效果会更好。即带有目的性地阅读。
3. 开发板原理图此文档用于说明当前开发板上的资源,不同公司制作的开发板的内容都不一样,有的添加模块多,有的是预留接口多。笔者本次使用的开发板属于预留接口很多的那种,属于“未来可期型”开发板吧😄。
通过阅读原理图,可以很清晰的获取到目前开发板上除去MCU以外的资源,比如按键的数目与引脚,LED的数目与引脚、EEPROM(一种存储芯片)的引脚,开发板上还预留了OLED接口、无线通信接口、TTL转CAN接口、TTL转485接口等,这些接口可以用于之后的通信实验。
03总结对资料进行收集和分析,是实现开发MCU的必要步骤。步骤:
选定一款开发板,并确定主控芯片的型号
根据型号名,从主控芯片的生产厂商或开发板的零售商获取芯片的资料,比较关键的有芯片数据手册、用户手册、开发板原理图和固件库。
查看这些手册资料,大致了解当前所操作的主控芯片以及开发板。
希望有更多的人能够关注、以及参与到国产MCU的学习和工作中,终有一天,中国芯将实现“弯道超车,遍地开花”。
end
本次内容提纲如下:
学习国产MCU的准备工作
分析各类手册
01准备工作1. 一份开发板套件

本次使用的是一块以GD32F103RCT6为主控的开发板,在某宝商购买,价格在50~60元。需要的朋友可以自行在某宝上搜索“GD32开发板”即可找到同款,不过新手还需要购买一个调试器配套使用。芯片型号一般会刻在芯片上方,购买开发板后找到主控芯片,一般都可以看到其型号。不过市场上的嵌入式产品中,厂商为了防止被竞争对手白嫖信息、复刻开发板,可能会将芯片的表面标记磨平。
2. 获取资料获取思路很简单,根据供求关系。资料来源有两个:一是卖给客户开发板的某宝商家,另一个是芯片的生产厂商。为了更好模拟初次接触新型号芯片时场景,本次我们优先选择从芯片的生产厂商获取资料,直接打开浏览器,搜索“gd32官网”,之后可以进入到兆易创新的官网,找到下载界面,网址如下:http://www.gd32mcu.com/cn/download

到此步骤,发现文件、分类众多,如何有效筛选资料?参考以下思路: 思路1:基于型号选资料,当前MCU型号为GD32F103RCT6,故只找名称中涵盖该型号的资料。因为GD32芯片资料有借鉴STM32芯片资料,所以GD32芯片的命名方式同STM32,也就是说名称中F表示“通用型”,103是一种具体的子型号。思路2:找MCU开发资料的最核心部分,即主控芯片的数据手册、参考手册,开发板的原理图,主控芯片的固件库。
基于以上思路,现在开始下载资料。Step1,在官网中搜索“GD32F103”,找到芯片的数据手册,并进行下载。

此步骤完成后,获得数据手册,这份手册会介绍本芯片的特有参数、资源信息。
Step2,在官网搜索“GD32F10x”,在应用笔记中找到参考手册(在某些芯片资料中,文件名不一定叫做“参考手册reference manual”而是命名为“用户手册User Manual” 或 “指导guide manual”,这些本质上类似)。

此步骤完成后,获得用户手册,这份手册会介绍GD32F10x系列芯片的每种外设资源如何使用;同时本次搜索还可以获取到GD32F10x库函数使用指南,这份手册会介绍库函数如何使用。
Step3,开发板的原理图,由于本次笔者使用开发板并不是由兆易创新公司制作(但是主控芯片是由该公司制作),所以此资料只能找某宝的开发板商家获取。不过开发板原理图对于新建工程影响不大。
Step4,主控芯片的固件库,仍在官网搜索“GD32F10x”,在应用软件页面,找到固件库并下载。

此步骤完成后,获得GD32F10x的固件库,这个压缩包主要包含GD32F10x系列芯片的库函数相关文件。对于一款新型的MCU的开发,一般编程方法只有两种:寄存器编程或库函数编程。前者难但是学得更透更深入,后者厂家则是在前者基础上将常用的操作封装为函数,后者学习起来更容易一些。总之,两种编程方法各有利弊吧。
02分析手册1. 数据手册Data Sheet芯片数据手册会包含本型号芯片的特有参数,从实际开发的流程来看,在产品设计的初期需要评估主控芯片的所需要具备的资源,从而进行主控芯片的选型,所以理解当前使用的MCU的资源非常重要!重点查看芯片的数据手册,打开刚才下载好的芯片数据手册,找到正文开始的位置。

可以看到GD32F103xx系列的芯片采用ARM-cortex-M3架构,主频可达108MHz。而ST公司的STM32F103xx系列芯片的主频只有72MHz。一般,主频越高,执行相同指令所需要的时间就越短,相当于芯片反应更迅速。接下来继续阅读芯片数据手册,找出本次使用主控GD32F103RCT6的资源情况。

因为表格第一行写的内容为“GD32F103xx”,结合本次使用的型号,可知应该查找RC所在列。故可以得到以下信息:主控芯片的Flash大小为256KB,SRAM为48KB,包含4个通用定时器,2个高级定时器,1个SysTick定时器,2个基本定时器,2个看门狗,1个实时时钟,3个USART接口,2个UART接口,2个I2C接口,3个SPI接口......等(参考表格内容阅读即可)。
2. 用户手册User Manual一般用户手册针对的芯片范围要比数据手册对应的芯片范围较大一些。比如本次获取的资料分别是GD32F10x用户手册 和 GD32F103xx数据手册。用户手册会介绍本类芯片的各种外设有哪些功能、寄存器表以及如何使用这些外设。

对于此文档,笔者的建议是先不去看它,因为内容过多,且每个章节之间相对独立。在确定实验目标之后再阅读,效果会更好。即带有目的性地阅读。
3. 开发板原理图此文档用于说明当前开发板上的资源,不同公司制作的开发板的内容都不一样,有的添加模块多,有的是预留接口多。笔者本次使用的开发板属于预留接口很多的那种,属于“未来可期型”开发板吧😄。

通过阅读原理图,可以很清晰的获取到目前开发板上除去MCU以外的资源,比如按键的数目与引脚,LED的数目与引脚、EEPROM(一种存储芯片)的引脚,开发板上还预留了OLED接口、无线通信接口、TTL转CAN接口、TTL转485接口等,这些接口可以用于之后的通信实验。
03总结对资料进行收集和分析,是实现开发MCU的必要步骤。步骤:
选定一款开发板,并确定主控芯片的型号
根据型号名,从主控芯片的生产厂商或开发板的零售商获取芯片的资料,比较关键的有芯片数据手册、用户手册、开发板原理图和固件库。
查看这些手册资料,大致了解当前所操作的主控芯片以及开发板。
希望有更多的人能够关注、以及参与到国产MCU的学习和工作中,终有一天,中国芯将实现“弯道超车,遍地开花”。
end