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);// 休眠1000msdelay_1ms(1000);// 设置PB2为低电平gpio_bit_reset(GPIOB, GPIO_PIN_2);// 休眠1000msdelay_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.mzph.cn/news/845360.shtml

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

相关文章

自制F1C200S demo板(八、Linux初学3)

uboot执行流程学习 uboot执行流程文件路径&#xff1a; 1、uboot/arch/arm/cpu/arm926ejs/start.S&#xff0c;执行结束会跳转到_main部分&#xff0c;处于下一路径中 2、uboot/arch/arm/lib/crt0.S&#xff0c;执行到 mov r0, #0 bl board_init_f 会跳转到void …

今日总结2024/5/31

今日熟悉了常用库函数,并查集&#xff0c;常用建边方式 明天蓝桥杯国赛随缘了&#xff0c;第一次估计也是最后一次了 LQOJ.269 排列序数 如果用 a b c d 这 4 个字母组成一个串&#xff0c;有 4!24 种&#xff0c;如果把它们排个序&#xff0c;每个串都对应一个序号&#xf…

陪玩小程序都需要怎么做?

开发陪玩小程序需要进行全面的需求分析、功能规划、技术选型、界面设计等一系列步骤。陪玩小程序作为一种新兴的网络服务平台&#xff0c;为用户提供了寻找游戏伙伴、预约陪玩服务等功能&#xff0c;满足了用户在游戏领域的社交互动和技能提升需求。具体分析如下&#xff1a; 需…

一份不知道哪里来的第十五届国赛模拟题

这是一个不知道来源的模拟题目&#xff0c;没有完全完成&#xff0c;只作代码记录&#xff0c;不作分析和展示&#xff0c;极其冗长&#xff0c;但里面有长按短按双击的复合&#xff0c;可以看看。 目录 题目代码底层驱动主程序核心代码关键&#xff1a;双击单击长按复合代码 …

Flutter 中的 SliverPadding 小部件:全面指南

Flutter 中的 SliverPadding 小部件&#xff1a;全面指南 Flutter 是一个功能丰富的 UI 框架&#xff0c;由 Google 开发&#xff0c;允许开发者使用 Dart 语言来构建高性能、美观的跨平台应用。在 Flutter 的滚动组件体系中&#xff0c;SliverPadding 是一个用来为其子 Slive…

今日学会的,刘姥姥进大观园

Git - First-Time Git Setup 下载了Git&#xff0c;会用Git了&#xff1f; 还有这个&#xff1a;学习 HTML5 Canvas 这一篇文章就够了 | 菜鸟教程 (runoob.com) JavaScript 用法 | 菜鸟教程 (runoob.com) 看到这个真的是受益匪浅&#xff0c;我终于懂了一直有的疑惑。 3D可…

js 正则匹配返回所有匹配到的范围

js正则默认不返回匹配到的范围&#xff0c;有些场景用起来就不太方便。如果想针对于匹配到的位置多次操作就要另外想个办法了。 indexOf 这个只能获取到第一个出现的位置&#xff0c;其他位置不太行&#xff0c;这个方法好像就行不通了。 自己一个个找&#xff0c;写个kmp算法感…

Mock的用法

1. 引入unittest包&#xff0c;再从包里引用mock类 import unittest from unittest import Mock 2. mock的作用&#xff0c;做挡板或者用来做一些单元测试过程中复杂的数据的模拟 demo Demo() #把mock的值赋值给demo的get()方法&#xff0c;这样在调用这个方法时&#xff0…

RAG技术探索

什么是RAG 1 RAG原理 RAG&#xff08;Retrieval Augmented Generation, 检索增强生成&#xff09;&#xff0c;即LLM在回答问题或生成文本时&#xff0c;先会从大量文档中检索出相关的信息&#xff0c;然后基于这些信息生成回答或文本&#xff0c;从而提高预测质量。RAG模型尤…

数据在内存中的存储<C语言>

导言 在计算机中不同类型的数据在计算机内部存储形式各不相同&#xff0c;弄懂各种数据在计算机内部存储形式是有必要的&#xff0c;C语言的学习不能浮于表面&#xff0c;更要锻炼我们的“内功”&#xff0c;将来在写程序的时候遇见各种稀奇古怪的bug时&#xff0c;也便能迎刃而…

天文学专业大学院校排名(2024最新排行榜)

序号 学校代码 学校名称 学科名称 评估结果 1 10284 南京大学 天文学 A 2 10358 中国科学技术大学 天文学 A 3 10001 北京大学 天文学 B- 4 10248 上海交通大学 天文学 C 5 10027 北京师范大学 天文学 C- 天文学专业排名前5名的大学有&#xff1…

pipeline在计算机领域有什么贴切的翻译

在计算机领域&#xff0c;"pipeline"一词通常被翻译为“流水线”。这个术语指的是一种技术或架构&#xff0c;其中多个处理阶段按顺序执行&#xff0c;使得数据可以在一个阶段完成处理后立即被送入下一个阶段&#xff0c;从而提高效率和性能。在不同的上下文中&#…

控制障碍函数CBF详解(附带案例实现)

控制障碍函数CBF详解&#xff08;附带案例实现&#xff09; 文章目录 控制障碍函数CBF详解&#xff08;附带案例实现&#xff09;1. Control Affine System2. Lyapunov Theory, Nagumos Theory, Invariance Principle3. Control Lyapunov Function (CLF) and CLF-QP4. Control …

算法(十二)分治算法

文章目录 算法概念算法例子字符串中小写转大写求X^n问题 算法概念 分治算法&#xff08;divide and conquer&#xff09;算法的核心思想其实就是"分而治之"&#xff0c;将原问题划分成n个规模较小&#xff0c;并且结构与原问题相似的子问题&#xff0c;递归地解决这…

移植其他命令行Vivado IDE的工具

移植其他命令行Vivado IDE的工具 介绍 本章介绍如何迁移各种AMD命令行工具以在AMD中使用 Vivado™集成设计环境&#xff08;IDE&#xff09;。 迁移ISE Partgen命令行工具 ISE™Design Suite Partgen工具可获得&#xff1a; •系统上安装的所有设备的信息 •详细的包装信息 您可…

[openwrt-21.02]openwrt-21.02 make menuconfig不显示luci-app-firewall问题分析及解决方案

问题描述 make menuconfig在 在applications界面没有luci-app-firewall 问题分析 首先重新执行 ./scripts/feeds update -a ./scripts/feeds install -a 然后再次执行make menuconfig&#xff0c;依然不显示&#xff0c;所以不是feeds安装的问题 最后看到log有个openmptc…

GB-T 43206-2023 信息安全技术 信息系统密码应用测评要求

GB-T 43206-2023 信息安全技术 信息系统密码应用测评要求 编写背景 随着信息技术的飞速发展&#xff0c;信息系统在社会经济活动中扮演着越来越重要的角色。信息安全问题也随之成为社会关注的焦点。GB-T 43206-2023《信息安全技术 信息系统密码应用测评要求》是针对信息系统中…

kotlin gradle 在libs.versions.toml控制下添加本地aar/jar的方法

与之前gradle集中控制的方法相同&#xff0c;唯一不同的是改成kotlin dsl格式&#xff1a; 修改Module级别的build.gradle.kt文件 在dependencies函数块内添加下面代码块 implementation(fileTree(mapOf("dir" to "libs","include" to listOf(…

记录mabatis-plus初体验

一、简介 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 测试问题现象&#xff1a;测试mabatis的crud方法 增加 批量删除都没有问题 单单就是这个根据ID删除有问题 解决方案&#xff1a;真的就是pom文件的问题 自己的版本是Intelli…

Fully Convolutional Networks for Semantic Segmentation--论文笔记

论文笔记 资料 1.代码地址 2.论文地址 https://arxiv.org/abs/1411.4038 3.数据集地址 论文摘要的翻译 卷积网络是强大的视觉模型&#xff0c;可以产生特征层次结构。我们表明&#xff0c;卷积网络本身&#xff0c;经过端到端&#xff0c;像素对像素的训练&#xff0c;在…