【GD32F303CCT6BlueBill开箱点灯教程】

news2024/11/26 5:49:21

【GD32F303CCT6BlueBill开箱点灯教程】

  • 1. 搭建环境
    • 1.1 官方资料
    • 1.2 安装Keil 5
    • 1.3 安装芯片选型插件pack包
  • 2. 编译
    • 2.1 Keil4转换为Keil5工程
    • 2.2 选择芯片型号
    • 2.3 存储器类型
    • 2.4 选择下载器
    • 2.5 内存下载设置
  • 3. 烧录
    • 3.1 Keil内烧录
      • 3.1.1 J-Link烧录
      • 3.1.2 ST-Link烧录
      • 3.1.3 CMSIS-DAP烧录
    • 3.2 修改程序
    • 3.3 下载程序
  • 4. 总结

本教程教大家如何搭建GD32F303CCT6BlueBill开发环境,涉及点灯程序编译下载和验证。
在这里插入图片描述

1. 搭建环境

序号名称版本用途
1KeilV5单片机开发环境
2GD32F30x_AddOn_V2.1.0V2.1.0GD32F30x支持包
3GD32F30x Demo Suites2.4.3开发板项目资料
4DapLinkSernanDapLinkSer驱动
5GD32F303CCT6BlueBill开发板Plus单片机最小系统
6wchlink daplinkminidaplink 下载器

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

1.1 官方资料

在这里插入图片描述

GD32F103CCT6

  1. 108Mhz Max,20KB RAM,128KB ROM
    在这里插入图片描述
  2. wchlink daplink mini支持全系列arm内核芯片/沁恒RISC-V芯片 在这里插入图片描述
    驱动安装:https://item.taobao.com/item.htm?id=661258071789,
    链接:https://pan.baidu.com/s/1N4rb9gqJdBtRmlZr3Svz9A
    提取码:kwa1
    在这里插入图片描述
  1. GD32F30x系列开发板套件,支持GD32F303C-START、GD32F303B-START、GD32F305R-START、GD32F307C-EVAL、GD32F303E-EVAL、GD32F303C-EVAL和GD32F303B-EVAL。
    在这里插入图片描述

GD32 官方网站 www.gd32mcu.com

特性

  • GD32F103CBT6 ARM Cortex-M3
  • 108 MHz 最大运行频率
  • 128 Kbytes of Flash memory, 20 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
在这里插入图片描述
在这里插入图片描述

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

1.3 安装芯片选型插件pack包

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

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版本。

在这里插入图片描述
没有就直接复制文件添加x后缀,这样就可以用keilV5打开

2.2 选择芯片型号

这里我用的是 GD32F303CCT6
在这里插入图片描述
修改宏定义
GD32选型表 中找到 GD32F303RCT6

2.3 存储器类型

高密度产品(GD32F30X_HD) 是指 FLASH 存储器容量在 256KB 至 512KB 的 GD32F103xx 微控制器。
超高密度产品(GD32F30X_XD) 是指FLASH存储器容量在 512KB 以上 的 GD32F303xx 微控制器。
互联型产品(GD32F30X_CL) 是指产品是指 GD32F305xxGD32F307xx 微控制器。

  1. 所以 GD32F303RCT6 处于 HD 的产品,点击 Options of Target 在 C/C++ 选项里面将 Define GD32F30X_CL 改为 GD32F30X_HD
  2. 添加..\..\01_GPIO_Running_LED
    在这里插入图片描述

2.4 选择下载器

选择CMSIS-DAP下载调试器,插上去就有下载器的信息
在这里插入图片描述

2.5 内存下载设置

下载功能配置重启运行,看看是不是GD32F30XHliahdensity FMiC
在这里插入图片描述

点击按钮进行编译
在这里插入图片描述

3. 烧录

3.1 Keil内烧录

3.1.1 J-Link烧录

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

如果用的是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 显示,说明已经找到芯片内核,板子硬件连接,工程配置都正确,可以进行下载。

在这里插入图片描述

在这里插入图片描述

3.1.3 CMSIS-DAP烧录

单击 Options for Targe,再选择 Debug 边上是 Use 框是
CMSIS-DAP 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,箭头所指的 Port 选为 SW,速度选择 5MHz,板子硬件连接,工程配置都正确,可以进行下一步下载。
在这里插入图片描述

3.2 修改程序

根据GD32F303CCT6BlueBill开发板上的LED灯是PB2,需要把PB14修改PB2,修改后的main.c
在这里插入图片描述

/*!
    \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,开发板开始闪烁啦!
在这里插入图片描述

4. 总结

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

  1. GD32F303学习笔记(1)——搭建环境、编译烧写
  2. GD32F303课程【1】搭建开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读书笔记:《远见:如何规划职业生涯3大阶段》

《远见:如何规划职业生涯3大阶段》,作者布赖恩. 费瑟斯通豪,豆瓣链接:https://book.douban.com/subject/27609489/ 主旨:描述职业生涯中3个截然不同但相互关联的阶段,教会我们如何不断储备职场燃…

【linux指南--命令大全】

系统的学习linux常用的命令,命令很全所以篇幅很长,可以作为你查阅命令的手册。也欢迎大佬们评论区补充。 文章目录 常见目录介绍配置文件系统操作帮助命令man 帮助help 帮助info 帮助 显示当前的目录名称文件查看建立目录删除空目录复制文件移动文件删除…

Qt下面窗口嵌套,嵌套窗口中包含:QGraphicsView、QGraphicsScene、QGraphicsIte

Qt系列文章目录 文章目录 Qt系列文章目录前言一、嵌套窗口二、注意事项 前言 我们有一个主窗口mainwindow,需要向其中放入新的界面,你可以自己定义里面内容。 Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,…

vmware设置centos客户机和windows宿主机共享文件夹

一、安装内核 kernel-devel 包 yum install gcc yum install kernel-devel-$(uname -r) 注意,如果自己修改过内核版本,需要确保 uname -r 显示的版本和实际使用的内核版本一致。 二、安装 vmware-tools 在vmware上点击菜单:虚拟机->安…

Android kotlin 实现仿京东多个item向左自动排队(横向、动手滑动、没有首尾滑动)功能

文章目录 一、实现效果二、引入依赖三、源码实现1、适配器2、视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.6,这个里面带的适配器,直接调用就即可 BaseRecyclerViewAdapt…

【图神经网络】图神经网络(GNN)学习笔记:Graph Embedding

图神经网络(GNN)学习笔记:Graph Embedding 为什么要进行图嵌入Graph embedding?Graph Embedding使用图嵌入的优势有哪些?图嵌入的方法有哪些?节点嵌入方法(Node Embeddings)1. DeepWalk2. LINE…

CTFShow-WEB入门篇命令执行详细Wp(29-40)

WEB入门篇--命令执行详细Wp 命令执行:Web29:Web30:Web31:web32:web33:web34:web35:web36:web37:web38:web39:web40: CTFSh…

【哈希表part02】| 454.四数相加、383.赎金信、15.三数之和、18.四数之和

目录 ✿LeetCode454.四数相加❀ ✿LeetCode383.赎金信❀ ✿LeetCode15.三数之和❀ ✿LeetCode18.四数之和❀ ✿LeetCode454.四数相加❀ 链接:454.四数相加 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多…

Hive3安装

Mysql安装 卸载Centos7自带的mariadb rpm -qa|grep mariadb rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps rpm -qa|grep mariadb 安装mysql mkdir /export/software/mysql 上传mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 到上述文件夹下后解压 tar xvf mysql-5.7.29-1…

微服务技术简介

微服务技术简介 服务架构的演变微服务架构的常见概念微服务常见的解决方案Spring CloudSpring Cloud Alibaba微服务技术对比常用的微服务组件 微服务架构图 服务架构的演变 单体架构:当一个系统业务量很小的时候,将业务的所有功能集中在一个项目中开发&…

红帽认证常见答疑(一):有效期、考试题型、考试对年龄和身份要求、英语水平等

红帽认证有效期 红帽的每个证书都有有效期,期限3年。RHCE过期前可以考下午的RHCE(EX294)或者考一门RHCA来延期3年。证书过期后在红帽官网上无法下载证书,但仍然可以查询到考试记录,不会影响到就业求职,如果…

2.6 TCP与UDP的可靠性传输

目录 一、TCP可靠性传输1、重传机制1.1、超时重传1.2、快速重传1.3、SACK1.4、Duplicate SACK 2、滑动窗口3、流量控制3.1 滑动窗口与流量控制3.2窗口关闭 4、拥塞控制4.1拥塞窗口4.2 慢启动4.3 拥塞避免4.4 拥塞发生4.5 快速恢复 二、UDP可靠性传输1、主要策略2、重传机制2.1 …

基础知识学习---牛客网C++面试宝典(六)操作系统--第二节

1、本栏用来记录社招找工作过程中的内容,包括基础知识学习以及面试问题的记录等,以便于后续个人回顾学习; 暂时只有2023年3月份,第一次社招找工作的过程; 2、个人经历: 研究生期间课题是SLAM在无人机上的应…

湖南大学CS-2017期末考试解析

【特别注意】 答案来源于@wolf 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 这张卷子有点老了,部分题目可能有用。如果仔细研究应该会有所收获。 【试卷与答案】 一.(6 分,每空 0.5 分) 下表中%r1,%r2 为两个四位的寄存器,请仿照第一行…

考虑3D海底环境的风电场集电系统

摘要 风能是目前国内外应用较为广泛的一种绿色可再生能源,近几年我国风电产业的发展十分迅速。然后,越来越多的风力发电系统建并网,风力发电产生的电能受外界因素影响较大,具有一定的随机性和波动性,给并网后的电力系统…

代码随想录算法训练营第三十五天| 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

柠檬水找零 题目链接:力扣 这道题 我一开始用纯模拟的方法也能写出来,后来发现和卡哥给的答案差不多,其贪心的点在: 当账单是20的情况,优先消耗一个10和一个5因为美元10只能给账单20找零,而美元5可以给账…

为什么要进行基坑监测,基坑监测包括哪些内容?

首先我们来了解一下为什么要进行基坑监测?基坑作为基础建设的底层组成成分,关系着上层建筑的稳固安全,进行基坑监测主要是为了确保工程的安全、有效地管理工程施工,以下是具体的原因介绍: 1. 减少工程风险:…

服务限流算法

服务限流算法有哪些 计数器法(固定窗口):原理就是限制每秒处理请求数不超过阈值。比如一个接口一分钟可以处理1000次请求,那么可以设置一个计数器,当有一次请求过来,计数器就加1,如果一分钟以内…

【分布式存储】聊一下分布式存储之复制机制

上一篇文章中,主要聊了下数据分片的主要内容,我们知道,**通过数据分片其实可以解决数据存储的高性能以及可拓展,但是也导致了用join和使用分布式事务进行查询和存储数据的问题,**属于按下葫芦浮起瓢。但是在分布式领域…

【大数据之Hive】十一、Hive-HQL查询之基本查询

基础语法 select [all | distinct] select_expr,select_expr, ...from table)name --从什么表查[where where_condition] --过滤[group by col_list] --分组查询[having col_list] --分组后过滤[order by col_list] --排序[cluster by col_list | …