题外话
在开篇之前,首先要感谢电子工程世界提供这次来之不易的测评机会。
经过了半个月的快递也是终于拿到了这块开发板。接下来我们进入正题。今天这次的测评内容包括以下几个方面:
开箱
正面照:
包装是一个带有磁吸的盒子,里面防止了两个缓冲泡沫来防止板子在盒子内产生碰撞
开发板正面照:
开发板上面使用插座额外增加了一个4.3寸的LCD屏幕和一个OV2640摄像头
拆除掉的LCD屏幕:
拆除掉的OV2640
拆下来后的底板:
可以从图中看到,这块H759I-EVAL的板载资源非常丰富。可以非常方便的进行基于这块芯片的资源学习或者是功能验证
环境搭建
GD32官网提供了非常详细的文档以及开发者工具。如果你初次使用GD32也可以非常迅速的搭建好你本地的开发环境(本开发环境搭建假设你已经安装的Keil-ARM)
1- 访问GD32官网,在资料下载处搜索GD32H7
2 - 你可以在上述页面下载如下内容
同时需要下载Keil的支持包,并且安装。
我本地下载的文件如下图所示:
3 - 此时环境搭建已经完成。 此时使用keil新建project的时候可以看到已经多了对Giga device的H7系列芯片的支持
官方LED闪烁Demo烧录
打开 GD32H7xx_Demo_Suites_V1.2.0\GD32H759I_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED\MDK-ARM 文件夹,并且打开GD32H759I_EVAL.uvprojx
1- 点击Build 构建当前的Project
2- 点击Option for target 在Debug 选项中修改debug device 为 CMSIS-DAP Debugger
3- 点击Download 按钮将程序烧录到单片机
此时你会注意到,当前的开发板LED灯并没有闪烁。这原因是因为这两个板载的LED默认被跳线帽连接到了USB和LCD屏。
此时需要将JP66跳线帽接在右边的LED功能上, 然后将JP50也接到右边的LED功能上。 如下图所示
代码运行分析
接下来来看一下刚才烧录的demo是怎么工作的。
其实上述代码很简单,首先配置CPU缓存,然后配置系统滴答定时器。初始化外设时钟和开启LED闪烁。
根据GD32H7的结构图得知,所有的GPIO外设都被挂载到了AH4总线上
rcu_periph_clock_enable() 这个函数可以对外设的时钟进行初始化。而对于GPIO,分别支持 RCU_GPIOx (x = A,B,C,D,E,F,G,H,J,K): GPIO ports clock
之后在代码第72行也并不像STM32 一样的定义结构体初始化GPIO,而是可以直接根据GPIOX的名称来初始化对应GPIO的模式。
可以分别配置为如下图所示(输入,输出,重用,Analog to digital)
对于pull_up_down 可以配置为,上拉下拉以及悬空。 在这一点上GD32的库函数相对于STM32标准库在实现相同的功能上提供了更加简化的方式。
之后再配置GPIO的输出模式,分别可以配置为推挽输出以及开漏输出。GPIO的速度最快也是达到了100/220MHz。
对于库函数而言,这里有几个比较有意思的Functions,第一个是输入滤波的配置。可以在复杂环境下使用对应的滤波器对输入的数据进行降噪滤波。
第二个则是PIN lock的功能。可以锁定某个GPIO的某个PIN的功能。在锁定后,当前的GPIO状态不会再被改变。
最后一个则是这个 gpio_port_toggle了,这个function相对上一个 gpio_bit_toggle的区别是这个function会切换整个GPIO PIN的bit value. 对整体进行取反。
对于GPIO库函数的评价是: 可读性非常高,即便是新手没有接触过GD32 也可以非常快速的上手。
反馈和建议
对于这块开发板我有两点想要反馈的:
1- MCU 核心处预留的排针孔不是很友好,这种排针孔不是很通用
2- 这个Jtag的接口不应该是排针的形式。当用户使用Jtag的时候不是很好连接。
本帖最后由 御坂10032号 于 2024-5-21 20:51 编辑引用: lugl4313820 发表于 2024-6-1 11:31 楼主提出中肯的反馈与建议,这板子的跳线确实非常,我当时点个灯也找了好久才搞定。图片有些还是不是很清楚 ...
这个图片好像你点击他一下就变成高清的了
引用: 御坂10032号 发表于 2024-6-1 13:49 这个图片好像你点击他一下就变成高清的了
我这个图片用单反拍的,保证清楚,就是加载时间可能比较长。 帖子内显示的是处理过的低清的