ARM32开发——第一盏灯

news2025/1/22 8:31:26

🎬 秋野酱:《个人主页》
🔥 个人专栏:《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] 直接运行新的固件。

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

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

相关文章

C++入门——类和对象【3】(6)

前言 本节是C类和对象中的最后一节&#xff0c;学完本节内容并且能够掌握之前所学的所有内容的话&#xff0c;C就可以说是入门了&#xff0c;那我们废话不多说&#xff0c;正式进入今天的学习 1. 再谈构造函数 1.1 引入 我们在栈的背景下来看 栈的代码&#xff1a; ​type…

数据结构的快速排序(c语言版)

一.快速排序的概念 1.快排的基本概念 快速排序是一种常用的排序算法,它是基于分治策略的一种高效排序算法。它的基本思想如下: 从数列中挑出一个元素作为基准(pivot)。将所有小于基准值的元素放在基准前面,所有大于基准值的元素放在基准后面。这个过程称为分区(partition)操作…

开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?

开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势&#xff1f; ADR药物不良反应监测系统具有多个显著的优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; 一、提高监测效率与准确性&#xff1a; 通过自动化的数据收集…

Linux自动挂载服务autofs讲解

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

Codeforces Round 949 (Div. 2) (A~C)

1981A - Turtle and Piggy Are Playing a Game 贪心&#xff0c;每次取x 2&#xff0c;求最大分数 // Problem: B. Turtle and an Infinite Sequence // Contest: Codeforces - Codeforces Round 949 (Div. 2) // URL: https://codeforces.com/contest/1981/problem/B // Me…

Java项目对接redis,客户端是选Redisson、Lettuce还是Jedis?

JAVA项目对接redis&#xff0c;客户端是选Redisson、Lettuce还是Jedis&#xff1f; 一、客户端简介1. Jedis介绍2. Lettuce介绍3. Redisson介绍 二、横向对比三、选型说明 在实际的项目开发中&#xff0c;对于一个需要对接Redis的项目来说&#xff0c;就面临着选择合适的Redis客…

G4 - 可控手势生成 CGAN

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 代码总结与心得 代码 关于CGAN的原理上节已经讲过&#xff0c;这次主要是编写代码加载上节训练后的模型来进行指定条件的生成 图像的生成其实只需要使用…

unity2020打包webGL时卡进程问题

我使用的2020.3.0f1c1&#xff0c;打包发布WEB版的时候会一直卡到asm2wasm.exe这个进程里&#xff0c;而且CPU占用率90%以上。 即使是打包一个新建项目的空场景也是同样的问题&#xff0c;我尝试过一直卡在这里会如何&#xff0c;结果还真打包成功了。只是打包一个空场景需要20…

下载HF AutoTrain 模型的配置文件

下载HF AutoTrain 模型的配置文件 一.在huggingface上创建AutoTrain项目二.通过HF用户名和autotrain项目名,拼接以下url,下载模型列表(json格式)到指定目录三.解析上面的json文件、去重、批量下载模型配置文件(权重以外的文件) 一.在huggingface上创建AutoTrain项目 二.通过HF用…

微信公众号【原子与分子模拟】: 熔化温度 + 超导电性 + 电子化合物 + 分子动力学模拟 + 第一性原理计算 + 数据处理程序

往期内容主要涵盖&#xff1a; 熔化温度 超导电性 电子化合物 分子动力学模拟 第一性原理计算 数据处理程序 【1】熔化温度 分子动力学 LAMMPS 相关内容 【文献分享】分子动力学模拟 LAMMPS 熔化温度 晶体缺陷 熔化方法 LAMMPS 文献&#xff1a;金属熔化行为的局域…

Mac安装第三方软件的命令安装方式

场景&#xff1a; 打开终端命令行&#xff0c;sudo xattr -rd com.apple.quarantine&#xff0c;注意最后quarantine 后面加一个空格&#xff01;然后打开Finder&#xff08;访达&#xff09;&#xff0c;点击左侧的 应用程序&#xff0c;找到相关应用&#xff0c;拖进终端qua…

HackTheBox-Machines--Bashed

Bashed 测试过程 1 信息收集 NMAP 80 端口 目录扫描 http://10.129.155.171/dev/phpbash.min.php http://10.129.155.171/dev/phpbash.php 半交互式 shell 转向 交互式shell python -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.co…

dmdts连接kingbase8报错

dmdts连接kingbase报错 环境介绍1 人大金仓jdbc配置2 dmdts 人大金仓jdbc默认配置3 dmdts 修改jdbc配置4 达梦产品学习使用列表 环境介绍 dts版本 使用dmdts连接kingbase金仓数据库报错 无效的URL 对比jdbc连接串,修改配置解决 1 人大金仓jdbc配置 配置URL模版信息等 类名…

深度学习聚类再升级!新算法实现强悍性能,准确率超98%

深度聚类不仅继承了传统聚类算法的优点&#xff0c;在对高维和非线性数据的处理能力&#xff0c;以及自适应性和抗噪性方面也具有很大优势。 具体来说&#xff0c;结合深度学习的聚类算法通过利用深度神经网络的强大特征提取能力&#xff0c;自动学习和识别数据中的复杂结构和…

【小白专用24.5.30已验证】Composer安装php框架thinkPHP6的安装教程

一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架&#xff0c;是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架&#xff0c;甚至可以将你的项目商用&#xff1b; ThinkPHP8.0 是目前框架正式版的最新版…

Spring 框架:Java 企业级开发的基石

文章目录 序言Spring 框架的核心概念Spring 框架的主要模块Spring Boot&#xff1a;简化 Spring 开发Spring Cloud&#xff1a;构建微服务架构实际案例分析结论 序言 Spring 框架自 2002 年发布以来&#xff0c;已经成为 Java 企业级开发的标准之一。它通过提供全面的基础设施…

家政预约小程序10公众号集成

目录 1 使用测试号3 工作流配置4 配置关注事件脚本5 注册开放平台6 获取公众号access_token6 实现关注业务逻辑总结 我们本次实战项目构建的相当于一个预约平台&#xff0c;既有家政企业&#xff0c;也有家政服务人员还有用户。不同的人员需要收到不同的消息&#xff0c;比如用…

11- Redis 中的 SDS 数据结构

字符串在 Redis 中是很常用的&#xff0c;键值对中的键是字符串类型&#xff0c;值有时也是字符串类型。 Redis 是用 C 语言实现的&#xff0c;但是它没有直接使用 C 语言的 char* 字符数组来实现字符串&#xff0c;而是自己封装了一个名为简单动态字符串&#xff08;simple d…

基于强化学习的控制率参数自主寻优

1.介绍 针对控制建模与设计场景中控制参数难以确定的普遍问题&#xff0c;提出了一种基于强化学习的控制律参数自主优化解决方案。该方案以客户设计的控制律模型为基础&#xff0c;根据自定义的控制性能指标&#xff0c;自主搜索并确定最优的、可状态依赖的控制参数组合。 可…