【GD32F303CCT6BlueBill开箱点灯教程】

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 本教程教大家如何搭建GD32F303CCT6BlueBill开发环境,涉及点灯程序编译下载和验证。

1.png

1. 搭建环境

序号 名称 版本 用途
1 Keil V5 单片机开发环境
2 GD32F30x_AddOn_V2.1.0 V2.1.0 GD32F30x支持包
3 GD32F30x Demo Suites 2.4.3 开发板项目资料
4 DapLinkSer nan DapLinkSer驱动
5 GD32F303CCT6BlueBill开发板 Plus 单片机最小系统
6 wchlink daplink mini daplink 下载器

参照项目地址:gitee: https://gitee.com/WeAct-TC/BluePill-Plus


1.1 官方资料

image.pngGD32F303CCT6

1.120Mhz Max,48KB RAM,256KB ROM

2.png

8b17b0ea2eaa4f9ea38068556f72320a.png

2.wchlink daplink mini支持全系列arm内核芯片/沁恒RISC-V芯片

驱动安装:https://item.taobao.com/item.htm?id=661258071789

链接:https://pan.baidu.com/s/1N4rb9gqJdBtRmlZr3Svz9A

提取码:kwa1

3.png

3.GD32F30x系列开发板套件,支持GD32F303C-START、GD32F303B-START、GD32F305R-START、GD32F307C-EVAL、GD32F303E-EVAL、GD32F303C-EVAL和GD32F303B-EVAL。

4.png

GD32 官方网站www.gd32mcu.com


特性

  • GD32F303CCT6 ARM Cortex-M4
  • 120 MHz 最大运行频率
  • 256 Kbytes of Flash memory, 48 Kbytes of SRAM
  • 8 MHz 系统晶振
  • 32.768 KHz RTC晶振
  • 用户按键 KEY PA0
  • 蓝色 LED PB2 Active high
  • 红色电源 LED PWR
  • 2x20 侧面引脚 && 1x4 SWD 引脚
  • 尺寸: 52.81 mm x 20.78 mm
  • SPI Flash U3 IO位置
  • PA4 CS
  • PA6 MISO
  • PA7 MOSI
  • PA5 SCK
  • USB C
  • PA11 USB_DN
  • PA12 USB_DP
  • SWD Debug
  • PA13 SWDIO
  • PA14 SWCLK



目录名称 内容
Doc 数据手册/参考手册
HDK 硬件开发资料
SDK 软件开发资料
Examples 软件例程



- WeAct Studio 官方链接
- taobao: weactstudio.taobao.com
- aliexpress: weactstudio.aliexpress.com
- github: github.com/WeActTC
- gitee: https://gitee.com/WeAct-TC/BluePill-Plus
- blog: www.weact-tc.cn
---------------------------------------*/ 

1.2 安装Keil 5

由于GD32 Keil 版本例程的工程是基于Keil MDK-ARM 5.25 uVision5 创建的,所以我在此也安装MDK5.25版本。


下载链接:https://pan.baidu.com/s/1E4tcDQvsVl0xezU3pEyJTA

提取码:s1fr

5.png

6.png

安装教程见:GD32单片机开发环境搭建(Keil5安装)


1.3 安装芯片选型插件pack包

在上面百度云链接中,根据自己开发的芯片型号选择相应的pack包。由于我使用的是GD32F303CCT6,所以下载的是GD32F30x_AddOn_V1.1.0.rar,直接解压双击安装即可。

7.png

2. 编译

打开GD32F30x_Demo_Suites_V2.4.3的01_GPIO_Running_LED示例工程 Project

路径:\GD32F30x_Demo_Suites_V2.4.3\GD32303C_START_Demo_Suites\Projects\01_GPIO_Running_LED\MDK-ARM


2.1 Keil4转换为Keil5工程

默认情况下,GD官方给的例程都是基于Keil v4版本的,我们安装的是Keil v5版本,打开会有问题,我司这边提供例程都是已经转换成了Keil v5版本的,这个可以通过看工程文件的后缀名区分,uvprojx 是v5版本,uvproj 是v4版本。

8.png


没有就直接复制文件添加x后缀,这样就可以用keilV5打开


2.2 选择芯片型号

这里我用的是 GD32F303CCT6

9.png

修改宏定义

GD32选型表 中找到 GD32F303CCT6


2.3 存储器类型

高密度产品(GD32F30X_HD) 是指 FLASH 存储器容量在 256KB 至 512KB 的 GD32F103xx 微控制器。

超高密度产品(GD32F30X_XD) 是指FLASH存储器容量在 512KB 以上 的 GD32F303xx 微控制器。

互联型产品(GD32F30X_CL) 是指产品是指 GD32F305xx 和 GD32F307xx 微控制器。


  • 所以 GD32F303RCT6 处于 HD 的产品,点击 Options of Target 在 C/C++ 选项里面将 Define GD32F30X_CL 改为 GD32F30X_HD。
  • 添加..\..\01_GPIO_Running_LED和D:\Program Files (x86)\Keil_v5\ARM\PACK\ARM\CMSIS\5.3.0\CMSIS\Include

10.png

2.4 选择下载器

选择CMSIS-DAP下载调试器,插上去就有下载器的信息

11.png

2.5 内存下载设置

下载功能配置重启运行,看看是不是GD32F30XHliahdensity FMiC

12.png

点击按钮进行编译

13.png

3. 烧录

3.1 Keil内烧录

3.1.1 J-Link烧录

单击 Options for Targe,再选择 Debug 边上是 Use 框是

J-LINK 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,如果没有显示,排查如图箭头所指的 Port 是否选为 SW,还有 J-LINK 驱动是否正确,一般以上排查都能解决问题,最终有 IDCODE 显示,说明板子硬件连接,工程配置都正确,可以进行下一步下载。

14.png

15.png

如果用的是JLink V8,很可能会遇到无法正常烧写的问题,参考 解决方法:调试NRF52832工程时JLink提示错误信息read:@0x02000004


3.1.2 ST-Link烧录

安装 ST-Link 下载器的驱动

百度网盘:https://pan.baidu.com/s/1ZoXKAqjec9Bc6oN6_MNJyA?pwd=9181 提取码:9181

下载解压后双击 stlink_winusb_install 进行安装。

选择 ST-Link 下载

单击 Options for Targe,再选择 Debug 边上是 Use 框是

ST-LINK 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,板子硬件连接,工程配置都正确,可以进行下载。


16.png

17.png


3.1.3 CMSIS-DAP烧录

单击 Options for Targe,再选择 Debug 边上是 Use 框是

CMSIS-DAP 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,箭头所指的 Port 选为 SW,速度选择 5MHz,板子硬件连接,工程配置都正确,可以进行下一步下载。

19.png

3.2 修改程序

根据GD32F303CCT6BlueBill开发板上的LED灯是PB2,需要把PB14修改PB2,修改后的main.c

20.png

/*!
    \file  main.c
    \brief systick LED demo
    \version 2021-03-23, V2.0.0, demo for GD32F30x
*/
/*
    Copyright (c) 2021, GigaDevice Semiconductor Inc.
    Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:
    1. Redistributions of source code must retain the above copyright notice, this 
       list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright notice, 
       this list of conditions and the following disclaimer in the documentation 
       and/or other materials provided with the distribution.
    3. Neither the name of the copyright holder nor the names of its contributors 
       may be used to endorse or promote products derived from this software without 
       specific prior written permission.
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
OF SUCH DAMAGE.
*/
#include "gd32f30x.h"
#include "gd32f303c_start.h"
#include "systick.h"
/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
    /* configure systick */
    systick_config();
    /* enable the LEDs GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOB);
    /* configure LED1 LED2 GPIO port */
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
    /* reset LED1 LED2 GPIO pin */
    gpio_bit_reset(GPIOB, GPIO_PIN_2);
    gpio_bit_reset(GPIOB, GPIO_PIN_15);
    while(1){
        gpio_bit_set(GPIOB, GPIO_PIN_2);
        gpio_bit_set(GPIOB, GPIO_PIN_15);
        delay_1ms(1000);
        gpio_bit_reset(GPIOB, GPIO_PIN_2);
        gpio_bit_reset(GPIOB, GPIO_PIN_15);
        delay_1ms(1000);
    }
}


3.3 下载程序

点击下载Load,开发板开始闪烁啦!

21.png

4. 总结

事已至此,我们手把手教大家如何搭建GD32F303CCT6BlueBill开发环境,涉及点灯程序编译下载和验证,后期会做ROS_Arduino_Bridge移植,期待你的关注😘😘😘。从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣

参考文献:

  1. GD32F303学习笔记(1)——搭建环境、编译烧写
  2. GD32F303课程【1】搭建开发环境
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
测试技术 异构计算
LabVIEWCompactRIO 开发指南26 同步循环
LabVIEWCompactRIO 开发指南26 同步循环
36 2
|
6月前
|
算法 异构计算
LabVIEWCompactRIO 开发指南第七章45 将I/O添加到Compact RIO
LabVIEWCompactRIO 开发指南第七章45 将I/O添加到Compact RIO
39 1
|
6月前
|
存储 数据采集 设计模式
LabVIEWCompactRIO 开发指南4 第三章LabVIEW实时应用程序的设计
LabVIEWCompactRIO 开发指南4 第三章LabVIEW实时应用程序的设计
40 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第六章44 同步模块
LabVIEWCompactRIO 开发指南第六章44 同步模块
36 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第六章41 同步模块
LabVIEWCompactRIO 开发指南第六章41 同步模块
41 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第七章50
LabVIEWCompactRIO 开发指南第七章50
33 1
|
6月前
|
异构计算
LabVIEWCompactRIO 开发指南第七章49
LabVIEWCompactRIO 开发指南第七章49
37 1
|
6月前
|
存储 异构计算
LabVIEWCompactRIO 开发指南第六章43
LabVIEWCompactRIO 开发指南第六章43
37 1
|
6月前
|
资源调度 算法 程序员
LabVIEWCompactRIO 开发指南第六章42
LabVIEWCompactRIO 开发指南第六章42
44 1
|
6月前
|
人工智能 前端开发 异构计算
LabVIEWCompactRIO 开发指南第六章38
LabVIEWCompactRIO 开发指南第六章38
37 1