GD32单片机开发--点亮第一盏灯

知不足而奋进 望远山而前行


目录

系列文章目录

文章目录

前言

目标

内容

开发流程

需求分析

项目新建

代码编写

GPIO初始化

完整代码

程序编译

程序烧录

烧录扩展(熟悉)

官方烧录器烧录(熟悉)

总结


前言

在本次项目中,我们将学习如何点亮LED1灯并进行闪烁的操作,涉及到了基本的开发流程、程序编译、程序烧录以及GPIO初始化流程。


目标

  1. 掌握基本开发流程
  2. 掌握程序编译
  3. 掌握程序烧录
  4. 掌握GPIO初始化流程

内容

开发流程

  1. 项目新建
  2. 代码编写
  3. 程序烧录
  4. 验证结果

需求分析

点亮LED1灯,并且闪烁。

项目新建

📎GD32F407_Template.zip

附件为模板代码,解压后修改项目名称。

进入Project目录,双击uvprojx文件,即可打开项目

在这里特别强调

  1. 不要把项目放到含有中文的路径
  2. 文件路径不能够出现特殊字符,空格也不行

代码编写

GPIO初始化
void GPIO_config(void){// 1. 时钟初始化rcu_periph_clock_enable(RCU_GPIOB);// 2. 配置GPIO 输入输出模式gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_2);// 3. 配置GPIO 模式的操作方式gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_2);
}
// 设置PB2为高电平
gpio_bit_set(GPIOB, GPIO_PIN_2);
// 设置PB2为低电平
gpio_bit_reset(GPIOB, GPIO_PIN_2);
delay_1ms(1000);
完整代码
#include "gd32f4xx.h"
#include "systick.h"
#include <stdio.h>
/*********************
任务目标:点亮LED1: PB2**********************/void GPIO_config(void) {// 1. 时钟初始化rcu_periph_clock_enable(RCU_GPIOB);// 2. 配置GPIO 输入输出模式gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_2);// 3. 配置GPIO 模式的操作方式gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_2);
}int main(void) {// 系统滴答定时器初始化systick_config();// IO引脚初始化GPIO_config();while(1) {// 设置PB2为高电平gpio_bit_set(GPIOB, GPIO_PIN_2);// 休眠1000msdelay_1ms(1000);// 设置PB2为低电平gpio_bit_reset(GPIOB, GPIO_PIN_2);// 休眠1000msdelay_1ms(1000);}}

程序编译

在keil的操作栏中,点击保存编译,可以进行程序编译

程序烧录

  1. 将烧录器的排线接到开发板的烧录口,将USB接到电脑端。
  2. 配置烧录方式。点击魔法棒,进入debug栏目,如下图所示,配置为CMSIS-DAP Debuger

  1. 点击烧录按钮,如下图,进行烧录

  1. 按下开发板中央的重置按钮,开发板开始工作。

烧录扩展(熟悉)

  1. 烧录器额外配置

  1. 查看烧录器连接状态

  1. 配置烧录后自动重启程序

官方烧录器烧录(熟悉)

GD-Link 适配器(adapter)是一个用于GD32系列MCU的三合一多功能开发工具。

它通过JTAG/SWD接口提供CMSIS-DAP调试器端口。用户可以使用GD-Link 适配器(adapter)进行在线编程或在兼容的IDE(如Keil或IAR)中调试代码。

官网链接:兆易创新GigaDevice-资料下载兆易创新GD32 MCU

软件下载:📎GD_Link_Programmer_v4.6.19.15037.7z

GD_Link_Programmer_xxx.7z压缩包下载后解压,打开其中的GD-Link Programmer.exe

烧录流程如下:

  1. 连接设备

首先将GD32设备通过DAP_LINK转接器连接至PC。

然后 [Target] - [Connect] 连接设备。(快捷键为F2

链接成功后,右侧会显示MCU相关信息,下侧会显示连接成功的输出日志。

  1. 打开固件

选择.hex或.bin文件作为烧录固件:[File] - [Open] (快捷键为Ctrl + O

.hex通常在工程文件xxx.nvprojx所在目录的Objects子目录中。

如果找不到.hex文件,或编译后没有生成,请展开此折叠块进行设置

  • 打开Options for Target...

  • 勾选Create HEX File

  • 重新编译工程即可。
  1. 烧录固件

选择 [Target] - [Program] 进行烧录。(快捷键为F7)

提示Successfully!即为成功烧录

点击OK确认,此时按下开发板上的RESET按钮即可使新固件生效。或通过 [Target] - [Run App] 直接运行新的固件。


总结

通过本次项目,我们成功掌握了基本的开发流程,代码编写、程序编译和烧录的步骤,同时深入了解了GPIO的初始化流程。我们通过点亮LED1灯并进行闪烁的任务,实践了这些知识点,为未来的嵌入式开发工作积累了经验。

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

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

相关文章

ArangoDB 学习笔记

新工作需要用到 arangodb&#xff0c;由于之前没有接触过&#xff0c;所以从头开始学&#xff0c;记录一下学习过程中的重点。 一. ArangoDB 安装 1. 下载地址 官网地址&#xff1a;https://www.arangodb.com/download/ 2. 部署步骤 下载 rpm 安装包并安装 rpm -ivh arang…

wpf、winform 监听USB拔插时触发

C# USB拔插监听 C#查找设备管理器中所有的 USB 设备 wpf、winform 监听USB拔插时触发 监听Windows USB 拔插时触发 private void MainWindow_Loaded(object sender, RoutedEventArgs e){FleckWebSocketConfig.OpenSocketConfig().GetAwaiter(); //websocket 服务开启用于监听W…

MySQL 判断查询条件是否包含某字符串的几种方式

在日常的数据库操作中&#xff0c;我们经常需要判断某个字段中是否包含特定的字符串。在 MySQL 中&#xff0c;有多种方式可以实现这一需求。本文将介绍几种常见的方式&#xff0c;并详细说明它们的使用场景和优缺点。 1. 使用 LIKE 进行模糊查询 LIKE 是最常见的字符串匹配方…

python手动搭建transformer,并实现自回归推理

以下是添加了详细注释的代码和参数介绍&#xff1a; Transformer 实现及自回归推理 本文展示了如何手动实现一个简化版的Transformer模型&#xff0c;并用自回归方式实现一个seq2seq任务&#xff0c;例如机器翻译。 导入必要的库 import torch import torch.nn as nn import…

【区分vue2和vue3下的element UI DatePicker 日期选择器组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;我们通常使用 Element UI 的 DatePicker 日期选择器组件。然而&#xff0c;如前所述&#xff0c;Element UI 并没有官方支持 Vue 3 的版本。但有一个叫做 Element Plus 的库&#xff0c;它是 Element UI 的 Vue 3 版本&#xff0c;并提供了类似的 DateP…

TypeScript学习(二):数据类型

/** *一.typescript类型学习 */ //1.1 number类型 let a:number; a123; //这么写会报错&#xff0c;a"hello,world"; console.log(a); //1.2 string类型 let b:string; b"hello,world"; console.log(b); //1.3 boolean类型 let c:booleantrue; c…

华为OD刷题C卷 - 每日刷题 13(图像物体的边界,英文输入法)

1、&#xff08;图像物体的边界&#xff09;&#xff1a; 这段代码是解决“图像物体的边界”的问题。它提供了一个Java类Main&#xff0c;其中包含main方法和getResult方法&#xff0c;以及一个内部UnionFindSet类&#xff0c;用于计算像素1代表的物体的边界个数。 main方法首…

C#操作MySQL从入门到精通(11)——对查询数据使用正则表达式过滤

前言 对于之前提到的使用匹配、比较、通配符等过滤方式能解决大部分的项目问题,但是有时候也会遇到一些比较复杂的过滤需求,这时候就需要正则表达式来实现了,正则表达式使用regexp这个关键字来实现。 本次测试的数据库表的内容如下: 1、基本字符匹配(包含某些字符) 匹…

嵌入式之存储基本知识

系列文章目录 嵌入式之存储基本知识 嵌入式之存储基本知识 系列文章目录一、RAM与ROM二、DRAM和SRAM三、SDRAM&#xff08;DRAM的一种&#xff09;四、DDR 一、RAM与ROM RAM&#xff08;随机存取存储器&#xff09;和ROM&#xff08;只读存储器&#xff09;是两种不同类型的计…

揭秘VVIC API:开启高效数据交互的密钥,你的项目就差这一步

VVIC API接口概述 VVIC API提供了对VVIC服务的数据访问和操作功能。通过此API&#xff0c;开发者可以集成VVIC服务到他们的应用程序中&#xff0c;实现数据同步、用户认证、资源管理等功能。 点击获取key和secret API端点示例 用户认证 方法&#xff1a;POSTURL&#xff1a;/…

【JS】JavaScript编程语言-(Object)对象属性标志与对象属性描述符(2024-06-05)

我们知道&#xff0c;对象可以存储属性。 到目前为止&#xff0c;属性对我们来说只是一个简单的“键值”对。但对象属性实际上是更灵活且更强大的东西&#xff1a;其他配置选项。 1、属性标志 对象属性&#xff08;properties&#xff09;&#xff0c;除 value 外&#xff0c…

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:无人机自主飞行软件平台

案例简介 北京泛化智能科技有限公司&#xff08;gi&#xff09;所主导开发的 Generalized Autonomy Aviation System (GAAS) 是为无人机以及城市空中交通 (UAM, Urban Air Mobility) 所设计的开源无人机自主飞行框架。通过 SLAM、路径规划和 Global Optimization Graph 等功能…

【Linux】(三)—— 文件管理和软件安装

文件管理 Linux的文件管理是系统管理中的核心部分&#xff0c;它涉及到如何组织、访问、修改和保护文件及目录结构。 目录 文件管理基本概念常用命令查看和切换目录创建文件和目录删除文件和目录文件拷贝移动和重命名文件文件查看cat文件查看more查找文件查找文本 数据流和管道…

redsystems教程的基本使用之重置密码(忘记密码解决方法)

前言&#xff1a; 相信很多人都有疑惑&#xff0c;要是我不记得密码怎么办&#xff1f;如果你登录了&#xff0c;点击更改密码后&#xff0c;还是要你填写登录密码才能修改。为了解决这问题&#xff0c;博主通过了钻研成功搞出来了&#xff01;&#xff01;&#xff01;&#…

DS:数与二叉树的相关概念

欢迎来到Harper.Lee的学习世界&#xff01;博主主页传送门&#xff1a;Harper.Lee的博客主页想要一起进步的uu可以来后台找我哦&#xff01; 一、树的概念及其结构 1.1 树的概念亲缘关系 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限节点…

Marvelous Designer中一些棉质布料预设

Marvelous Designer中一些棉质布料预设的解释&#xff1a; Cotton_14_Wale_Corduroy&#xff1a;14条细鲸鱼纹的灯芯绒&#xff0c;适合制作温暖且有质感的服装。Cotton_40s_Chambray&#xff1a;40支精梳针织的府绸布&#xff0c;通常用于制作休闲衬衫。Cotton_40s_Poplin&am…

Nginx目录文件

Nginx目录文件 在 Nginx 的安装目录下&#xff0c;你可能会看到许多文件夹和文件。以下是对各个文件夹和文件的简要解释&#xff1a; conf.d: 这个文件夹通常用于存放额外的配置文件。Nginx 在启动时&#xff0c;会读取该文件夹下的所有配置文件&#xff0c;并将其内容合并到…

Face Forgery Detection by 3D Decomposition

文章目录 Face Forgery Detection by 3D Decomposition研究背景研究目标创新点方法提出问题研究过程技术贡献实验结果未来工作Face Forgery Detection by 3D Decomposition 会议:CVPR2021 作者: 研究背景 面部伪造引发关注传统面部伪造检测主要关注原始RGB图像

邮箱地址验证软件

邮箱地址验证软件是一种用于检测邮箱地址是否真实存在、有效和可送达的工具。这些软件通常服务于邮件营销、客户数据清洗或研究领域&#xff0c;以帮助用户提高邮件发送的成功率并减少 bounce rate&#xff08;退回率&#xff09;。易邮地址验证软件就是这么一款软件。 易邮件…

学Python,看一篇就够

学Python&#xff0c;看一篇就够 python基础注释变量标识符命名规则使用变量认识bugDebug工具打断点 数据类型输出转义字符输入输入语法输入的特点 转换数据类型pycharm交互运算符的分类赋值运算符复合赋值运算符比较运算符逻辑运算符拓展 条件语句单分支语法多分支语法拓展 if…