ARM32开发——第一盏灯

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》

⛺️心若有所向往,何惧道阻且长

文章目录

    • 开发流程
    • 需求分析
    • 项目新建
    • 代码编写
      • GPIO初始化
    • 程序编译
    • 程序烧录
    • 烧录扩展(熟悉)
    • 官方烧录器烧录(熟悉)

开发流程

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

需求分析

在这里插入图片描述
点亮LED1灯,并且闪烁。

项目新建

附件为模板代码,解压后修改项目名称。
在这里插入图片描述

进入Project目录,双击uvprojx文件,即可打开项目
在这里插入图片描述
在这里特别强调:
在这里插入图片描述

代码编写

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);
    // 休眠1000ms
    delay_1ms(1000);
    // 设置PB2为低电平
    gpio_bit_reset(GPIOB, GPIO_PIN_2);
    // 休眠1000ms
    delay_1ms(1000);
  }

}

程序编译

在keil的操作栏中,点击保存编译,可以进行程序编译
在这里插入图片描述

程序烧录

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

点击烧录按钮,如下图,进行烧录
在这里插入图片描述
4. 按下开发板中央的重置按钮,开发板开始工作。

烧录扩展(熟悉)

  1. 烧录器额外配置
    在这里插入图片描述
    查看烧录器连接状态
    在这里插入图片描述
    配置烧录后自动重启程序
    在这里插入图片描述

官方烧录器烧录(熟悉)

GD-Link 适配器(adapter)是一个用于GD32系列MCU的三合一多功能开发工具。
它通过JTAG/SWD接口提供CMSIS-DAP调试器端口。用户可以使用GD-Link 适配器(adapter)进行在线编程或在兼容的IDE(如Keil或IAR)中调试代码。
官网链接:https://gd32mcu.com/cn/download?kw=GD-Link&lan=cn
软件下载:
GD_Link_Programmer_xxx.7z压缩包下载后解压,打开其中的GD-Link Programmer.exe
烧录流程如下:

  1. 连接设备
    首先将GD32设备通过DAP_LINK转接器连接至PC。
    然后 [Target] - [Connect] 连接设备。(快捷键为F2)

在这里插入图片描述
链接成功后,右侧会显示MCU相关信息,下侧会显示连接成功的输出日志。

在这里插入图片描述
2. 打开固件
选择.hex或.bin文件作为烧录固件:[File] - [Open] (快捷键为Ctrl + O)
.hex通常在工程文件xxx.nvprojx所在目录的Objects子目录中。
在这里插入图片描述
如果找不到.hex文件,或编译后没有生成,请展开此折叠块进行设置
● 打开Options for Target…

● 勾选Create HEX File

● 重新编译工程即可。
3. 烧录固件
选择 [Target] - [Program] 进行烧录。(快捷键为F7)
在这里插入图片描述
提示Successfully!即为成功烧录
在这里插入图片描述
点击OK确认,此时按下开发板上的RESET按钮即可使新固件生效。或通过 [Target] - [Run App] 直接运行新的固件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java过滤特殊空格nbsp;

现象&#xff1a; 用Java处理excel文件中的以下字符串时&#xff0c;想去除此空格&#xff0c;却发现用String.trim()没有直到预期效果&#xff1a; 原因&#xff1a; 在网上找了下&#xff0c;应该是这其实是html中经常使用的一种特殊空格字符&nbsp&#xff1b; 处理&a…

LabVIEW调用外部DLL(动态链接库)

LabVIEW调用外部DLL&#xff08;动态链接库&#xff09; LabVIEW调用外部DLL&#xff08;动态链接库&#xff09;可以扩展其功能&#xff0c;使用外部库实现复杂计算、硬件控制等任务。通过调用节点&#xff08;Call Library Function Node&#xff09;配置DLL路径、函数名称和…

C/C++ 进阶(4)二叉搜索树

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 一、概念 二叉搜索树&#xff0c;又称二叉排序树&#xff08;中序是有序的&#xff09;。 性质 1、非空左子树的键值小于根节点的键值 2、非空右子树的键值大于根节点的键值 &#xff08;空树也是二叉搜…

变压器励磁涌流MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 变压器励磁涌流的产生机理 1、变压器是电力系统的关键部分&#xff0c;在实际的 运行中&#xff0c;变压器需要进行相应的充电&#xff0c;而在充电的过 程中&#xff0c;就需要进行开合闸作业。在开合闸作业…

智慧楼宇:城市生活的新篇章

在城市的喧嚣与繁华中&#xff0c;楼宇不仅是我们工作与生活的场所&#xff0c;更是智慧科技发展的前沿阵地。当传统的建筑遇上智慧的火花&#xff0c;便诞生了令人瞩目的智慧楼宇。 山海鲸可视化搭建的智慧楼宇数字孪生系统 一、智慧楼宇&#xff0c;定义未来生活 智慧楼宇不…

vue3学习使用笔记

1.学习参考资料 vue3菜鸟教程&#xff1a;https://www.runoob.com/vue3/vue3-tutorial.html 官方网站&#xff1a;https://cn.vuejs.org/ 中文文档: https://cn.vuejs.org/guide/introduction.html Webpack 入门教程&#xff1a;https://www.runoob.com/w3cnote/webpack-tutor…

【linux】docker下nextcloud安装人脸识别插件2

接上文 【linux】docker下nextcloud安装人脸识别插件-CSDN博客 由于作者不再维护此插件&#xff0c;转而开发新的插件 recognize &#xff0c;因此同步更新插件使用教程。 1、下载人脸识别app&#xff1a;recognize Recognize - Apps - App Store - Nextcloud 2、将插件recog…

Java后端模拟面试 题集⑤

1.先作个自我介绍吧 面试官您好&#xff0c;我叫张睿超&#xff0c;来自湖南长沙&#xff0c;大学毕业于湖南农业大学&#xff0c;是一名智能科学与技术专业的统招一本本科生。今天主要过来面试贵公司的Java后端开发工程师岗位。 大学里面主修的课程是Java、Python、数字图像…

Linux自动挂载服务autofs讲解

1.产生原因 2.配置文件讲解 总结&#xff1a;配置客户端&#xff0c;先构思好要挂载的目录如&#xff1a;/abc/cb 然后在autofs.master中编辑&#xff1a; /abc&#xff08;要挂载的主目录&#xff09; /etc/qwe&#xff08;在这个文件里去找要挂载的副目录&#xff0c;这个名…

【C++】入门(二):引用、内联、auto

书接上回&#xff1a;【C】入门&#xff08;一&#xff09;&#xff1a;命名空间、缺省参数、函数重载 文章目录 六、引用引用的概念引用的使用场景1. 引用做参数作用1&#xff1a;输出型参数作用2&#xff1a;对象比较大&#xff0c;减少拷贝&#xff0c;提高效率 2. 引用作为…

LangGraph实战:可控的AI航空客服助手

上节课&#xff0c;我们定义了AI航空客服助手需要使用的一系列API接口工具&#xff0c;并定义了一个简单的零样本代理作为用户的助手。没看过的同学可以点击链接LangGraph实战&#xff1a;从零分阶打造人工智能航空客服助手查阅。这次我们将讲述&#xff0c;如何通过LangGraph的…

预编码算法(个人总结)

引言 预编码算法是现代无线通信系统中的关键技术&#xff0c;特别是在多输入多输出&#xff08;MIMO&#xff09;系统中。它们通过在发送端对信号进行处理&#xff0c;减少干扰并提高信道容量。这种技术广泛应用于5G、Wi-Fi和卫星通信系统中。本教程将详细介绍预编码算法的背景…

Redis 探索之旅(进阶)

目录 今日良言&#xff1a;从不缺乏从头开始的勇气 一、持久化 1、RDB 2、AOF 二、Redis 的事务 三、主从复制 四、哨兵模式 五、集群模式 六、缓存 七、分布式锁 今日良言&#xff1a;从不缺乏从头开始的勇气 一、持久化 持久化就是把数据存储在硬盘上&#xff0c;无…

鸿蒙开发接口媒体:【@ohos.multimedia.media (媒体服务)】

媒体服务 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 媒体子系…

C++青少年简明教程:While和Do-while循环语句

C青少年简明教程&#xff1a;While和Do-while循环语句 C的while和do-while语句都是循环控制语句&#xff0c;用于重复执行一段代码。while语句在循环开始前检查循环条件&#xff0c;而do-while语句在循环结束后检查循环条件。 使用while循环时&#xff0c;如果需要在每次迭代前…

【SpringMVC】_设置响应状态码与Header

目录 1. 设置响应状态码 2. 设置响应Header 2.1 设置Content-Type 2.1.1 不使用RequestMapping的produce属性 2.1.2 使用RequestMapping的produce属性 2.2 设置/新增其他Header 1. 设置响应状态码 Spring是基于servlet实现的&#xff0c;设置HTTP响应的状态码可以通过se…

Flink实现实时异常登陆监控(两秒内多次登陆失败进行异常行为标记)

Flink实现异常登陆监控&#xff08;两秒内多次登陆失败进行异常行为标记&#xff09; 在大数据处理领域&#xff0c;Apache Flink 是一个流行的开源流处理框架&#xff0c;能够高效处理实时数据流。在这篇博客中&#xff0c;我们将展示如何使用 Apache Flink 从 MySQL 中读取数…

docker compose完成简单项目部署

1. 项目环境 centos7 docker mysql redis ruoyi项目 ruoyi项目链接&#xff1a;https://gitee.com/y_project/RuoYi-Vue.git 2. 进行项目前后端代码打包 后端打包&#xff1a; 修改mysql连接的相关配置文件 RuoYi-Vue/ruoyi-admin/src/main/resources/application-dru…

Scroll 上的明星项目Pencils Protocol ,缘何被严重低估?

近日&#xff0c;完成品牌升级的 Pencils Prtocol 结束了 Season 2 并无缝开启了 Season 3&#xff0c;在 Season 3 中&#xff0c;用户可以通过质押系列资产包括 $ETH、$USDT、$USDC、$STONE 、$wrsETH、$pufETH 等来获得可观收益&#xff0c;并获得包括 Scroll Marks、 Penci…

深入理解flask规则构建与动态变量应用

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、Flask规则基础 1. 静态规则与动态规则 2. 规则语法与结构 三、动态变量应用…