如何做一张图片的网站,千锋和黑马培训前端哪个好,昆明排名优化,温州专业微网站制作报价文章目录 0 前言1 开发方式选择2 标准库模板的创建3 遇到的问题和解决方法 0 前言 因为项目关系#xff0c;需要使用GD32。之前对此早有耳闻#xff0c;知道这个是一个STM32的替代品#xff0c;据说甚至可以直接烧录STM32的程序#xff08;一般是同型号#xff09;#x… 文章目录 0 前言1 开发方式选择2 标准库模板的创建3 遇到的问题和解决方法 0 前言 因为项目关系需要使用GD32。之前对此早有耳闻知道这个是一个STM32的替代品据说甚至可以直接烧录STM32的程序一般是同型号但是GD32型号的编排更加复杂不能和STM32一一对应所以从长远角度来看还是建议按照官方推荐的方式来开发其实本质上和STM32开发是差不多的所以对于熟练STM32开发的人来说上手还是挺快的关键是要学会查找和使用资料。 GD32开发资料下载——记得点开右上角的箭头可以展开更多 1 开发方式选择 可能是为了跟上STM32的脚步兆易最近2024.04也开发了适配自家产品的集成开发环境——Embedded Builder对标STM32的CubeIDE。 但是我体验下来的感觉并不好一个是支持的型号有限没有我正在使用的型号一个是win7莫得选择支持不太好打开之后不知道为啥显示屏一大段黑条关掉软件之后就立刻好了可能是显卡要求比较高。 综上我不得不放弃私以为更好用的HAL库转而使用标准库进行开发。以下是开发记录。
2 标准库模板的创建 标准库开发的第一步毫无疑问肯定是搭建一个项目工程的模板这样之后的项目可以直接复制这个模板然后在此基础上添加自己需要的代码即可非常方便。
下载资料 首先打开上面那个链接然后在左侧找到对应的芯片型号这里以GD32E230为例首先点开 “GD32E2 MCU” 标签页然后在右侧就能看到这个型号相关的资料 当然这些资料不是都需要下载的如果是初学只需要下载必要的文件即可其他的留个印象之后如果涉及到可以再来翻阅。 主要需要下载的有以下几个资料
GD32E230xx Datasheet 芯片数据手册查看外设引脚必备GD32E23x User Manual 用户手册主要是介绍芯片的特性存储外设及其相关寄存器等编程必备【注意这个文件有中文版不想翻译的可以考虑只下载这个】GD32E23x AddOn 软件支持包使用Keil开发必备GD32E23x Firmware Library 标准固件库搭建模板必备。 另外“用户手册”和“其他资料”中有很多“AN”开头的文件适用于特定问题的解决最好留个印象这样遇到相关的问题不至于不知道去哪里找资料了。 创建标准库模板工程 基本流程和STM32配置差不多这里只展示文件的目录结构具体的配置流程可以参考之前的一篇文章。
|-- CMSIS # 内核文件
| |-- gd32e23x.h
| |-- gd32e23x_libopt.h
| |-- startup_gd32e23x.s
| |-- system_gd32e23x.c
| -- system_gd32e23x.h
|-- Hardware # 自定义外设
| |-- usart.c
| -- usart.h
|-- Objects # 编译链接文件
| |-- gd32e23x_adc.d
| |-- gd32e23x_adc.o
| |-- ......
| -- usart.o
|-- RTE # Real Time EnvironmentKeil自带的内核相关文件
| -- _Target_1
| -- RTE_Components.h
|-- StdPeriph # 标准外设库
| |-- Include
| | |-- gd32e23x_adc.h
| | |-- gd32e23x_cmp.h
| | |-- gd32e23x_crc.h
| | |-- ......
| | -- gd32e23x_wwdgt.h
| -- Source
| |-- gd32e23x_adc.c
| |-- gd32e23x_cmp.c
| |-- gd32e23x_crc.c
| |-- ......
| -- gd32e23x_wwdgt.c
|-- User # 用户文件
| |-- gd32e23x_it.c
| |-- gd32e23x_it.h
| |-- main.c
| |-- main.h
| |-- systick.c
| -- systick.h
|-- gde2_project.uvguix.Zoey # 最外层目录的这些文件都是项目相关的文件
|-- gde2_project.uvoptx
-- gde2_project.uvprojx9 directories, 112 files值得一提的是这里的RTE文件夹并不是自己建立的而是在创建项目时首先添加到工程中的 之所以要添加这个貌似是因为GD32E2xx固件库中不存在这个core文件总之必须得添加这个不然编译的时候一堆报错。 注意这个步骤仅限于部分型号加不加其实取决于固件库的文件夹中有没有内核文件如果有直接添加文件即可因为这一步本质上就是复制Keil安装的支持包中的内核文件而已。 这里再提一下gd32e23x_libopt.h这个文件相当于是一个选择外设的文件可以根据需要注释或取消注释包含的头文件默认全部包含但是它可能和其他文件不在一个文件夹内而是在example文件夹中。 添加好文件之后接下来就是点击魔法棒来配置项目工程了首要的肯定是先将自定义文件夹的路径包含在项目中然后在宏定义中加上
USE_STDPERIPH_DRIVER,GD32E230后面这个芯片型号取决于实际使用的是啥好像也可以不加 配置好之后点击编译如果没有问题的话一般是 0 Error(s) 但是可能会有一堆Warnings如果有强迫症的可能已经开始将警告内容复制去浏览器搜索解决方案了我也尝试过但无果。 后来和其他项目工程模板仔细比对之后发现因为使用了RTE工程的默认编译器变成了AC6而且不能换成AC5所以出现了很多语法格式上的警告所以解决办法也很简单将警告的等级降一降 亲测有效 掌握了标准库项目模板的构建基本也算是入门了其他的主要就是外设的使用了这个将在后续博客中介绍。 3 遇到的问题和解决方法
下载程序之后不运行 当发现程序运行结果和想象中不一样时可以使用仿真器单步运行。然后就发现代码卡在开始文件的汇编代码中也就是后缀为.s的文件。最后发现是系统的时钟配置错误。 如注释所示这里要选择一个时钟源和主频然后如果板子上没有使用外部晶振这里仍然选择了后缀为8M_HXTAL或25M_HXTAL的选项时钟选择错误导致系统不运行。 关于时钟的选择芯片特性手册和使用手册上都有提到可以去参考。