当前位置: 首页 > news >正文

【萤火工场GD32VW553-IOT开发板】流水灯

【萤火工场GD32VW553-IOT开发板】流水灯

✨ 本文介绍了萤火工场 GD32VW553-IOT 开发板实现 流水灯 的项目设计流程。

项目介绍

  • 环境搭建🍦
  • 工程创建🥧
  • 硬件连接🍫
  • 代码编译🍷
  • 固件上传🍹
  • 效果演示🍸

在这里插入图片描述

环境搭建

🎉介绍了 GD32VW553 开发环境搭建的主要流程。

🎁 使用 GD32 Embedded Builder IDE 编译和调试工程

🎄 工程组由 MBLMSDK 两个工程组成。

  • MSDK 包含 WiFi 和 BLE 协议栈、外设驱动及应用程序等;
  • MBL 主要负责从两个 MSDK 固件(当前固件和 OTA 固件)中选择正确的运行。

🎯 软件及 SDK 下载安装完成后,开始工程导入和调试流程。

  • 双击 EmbeddedBuilder 目录下的 Embedded Builder.exe 启动 IDE;
  • 选择 SDK 目录 GD32VW55x_RELEASE 为 workspace,点击 launch 按钮;
  • 导入 MBL 工程 File 菜单点击 Open Projects from file System,选择工程路径 GD32VW55x_RELEASE\MBL\project\eclipse
  • 导入MSDK 工程 File 菜 单 点 击 Open Projects from file System, 工程路径选择 GD32VW55x_RELEASE\MSDK\projects\eclipse\msdk

在这里插入图片描述

  • 编译MBL工程,右击工程,点击 build project
  • 编译MSDK工程 ,右击工程,依次点击 Build Configurations -> Set Active -> 选择需要的配置;
  • 再次右击工程,点击 Build project
  • 生成的镜像烧录固件位于 GD32VW55x_RELEASE_V1.0.2\scripts\images\image-all.in

固件烧录

🎵 采用 ISP 方式上传固件至开发板。

硬件连接
  • RXD -> PA6
  • TXD -> PA7
  • 3V3 -> VCC
  • GND -> GND

🔔 示意图

在这里插入图片描述

🧵 主控板渲染图参考:GD32VW553-IOT测评 - Chiando .

🍥 模式:将 BOOT0 拉高,USB 转 TTL 工具连接开发板;

在这里插入图片描述

🔮 下载并运行 GD32 All-In-One Programmer 软件,设备端口选择、串口参数设定如下,注意设备名称为 GD32VW553HMQ7 ,点击 Connect 按钮(若连接失败,则短按复位键)。

🥪 加载镜像固件、设置起始地址,点击 Download 按钮

在这里插入图片描述

🔫 待固件上传结束,点击 Disconnect 断开烧录工具串口连接,将 BOOT0 重新拉低。

🍟 打开串口调试助手,配置串口参数,打开串口,短按 RST 复位按键,即可观察到串口输出数据。

在这里插入图片描述

流水灯

🔎 在前面官方固件调试和上传流程无误的基础上,进一步建立流水灯的项目设计。

工程创建

  • 运行 Embedded Builder 软件,File - New - Project ...

在这里插入图片描述

  • 选择 C/C++ - C Project - 点击 Next ;
  • 设置工程名称、工程路径,目标设备选择 GD32VW553HMQ7 ,点击 Finished 完成工程创建。

🔋 详见:Chiando - Bilibili .

硬件连接

🎻 考虑到板载资源仅有显示电源 Power 的 LED ,因此需要外接 RGB LED 模块。

在这里插入图片描述

💡 RGB LED 模块详见:RGB LED 模块 - 立创开源硬件平台 .

  • LED R -> PA3
  • LED G -> PA4
  • LED B -> PA5
  • LED GND -> GND
示意图

在这里插入图片描述

工程代码

📊 打开 main.c 文件,修改代码如下

#include "gd32vw55x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
//#include "gd32vw553h_eval.h"void led_spark(void)
{static __IO uint32_t timingdelaylocal = 0U;if(timingdelaylocal) {if(timingdelaylocal < 500U) {//gd_eval_led_on(LED2);//gd_eval_led_on(LED2);} else {//gd_eval_led_off(LED2);//gd_eval_led_off(LED2);}timingdelaylocal--;} else {timingdelaylocal = 1000U;}
}int main(void)
{systick_config();/* enable the LED clock */rcu_periph_clock_enable(RCU_GPIOA);/* configure LED GPIO port */gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_3);gpio_bit_reset(GPIOA, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_3);while(1) {/* turn on PA3, turn off PA4 and PA5 */gpio_bit_set(GPIOA, GPIO_PIN_3);gpio_bit_reset(GPIOA, GPIO_PIN_4);gpio_bit_reset(GPIOA, GPIO_PIN_5);delay_1ms(500);/* turn on PA4, turn off PA3 and PA5 */gpio_bit_set(GPIOA, GPIO_PIN_4);gpio_bit_reset(GPIOA, GPIO_PIN_3);gpio_bit_reset(GPIOA, GPIO_PIN_5);delay_1ms(500);/* turn on PA5, turn off PA3 and PA4 */gpio_bit_set(GPIOA, GPIO_PIN_5);gpio_bit_reset(GPIOA, GPIO_PIN_3);gpio_bit_reset(GPIOA, GPIO_PIN_4);delay_1ms(500);}
}
  • 右键工程 - 编译程序,生成 Debug 文件夹,右键 bin 文件 - Show In - System Explorer

  • 打开系统路径并找到生成的 *.bin 固件

在这里插入图片描述

🛠️ 参考:GD32VW553的“芯“动初体验 .

固件上传

📡 采用 ISP 方式上传固件至开发板。

  • 将 BOOT0 拉高,USB 转 TTL 工具连接开发板;

  • 运行 GD32 All-In-One Programmer 软件;

  • 设备端口选择、串口参数设置,设备名称选择 GD32VW553HMQ7

  • 加载镜像固件、设置起始地址,点击 Download 按钮;

  • 待加载完成,跳帽恢复,将 BOOT0 拉低;

  • 短按 RST 复位键,程序开始运行。

效果

🎨 RGB 三色 LED 循环点亮,间隔为 500 毫秒。

在这里插入图片描述

总结

本文介绍了萤火工场 GD32VW553-IOT 开发板实现 流水灯 的项目设计流程,为相关应用的开发和设计提供了参考。

http://www.xdnf.cn/news/604819.html

相关文章:

  • Git子模块原理与实战详解
  • 【MATLAB代码】扩展卡尔曼滤波估计pmsm的位置误差
  • #6 百日计划第六天 java全栈学习
  • 编译原理 期末速成
  • 从零开始:Python语言进阶之继承
  • window 显示驱动开发-视频内存供应和回收(二)
  • 计算机语言&计算机安全知识
  • 十、Linux 网络服务基础
  • NLweb本地部署指南
  • EasyRTC音视频实时通话WebP2P技术赋能的全场景实时通信解决方案
  • 数据分析概述and环境配置
  • 照片时光机APP:修复老照片,重现往昔美好
  • Windows逆向工程提升之IMAGE_EXPORT_DIRECTORY
  • Git和Gitcode交互教程
  • 85. Java Record 深入解析:构造函数、访问器、序列化与实际应用
  • 关于千兆网络变压器的详细介绍
  • 【Flutter】多语言适配-波斯语RTL从右到左
  • 基于 Vue3 与 exceljs 实现自定义导出 Excel 模板
  • 如何在Mac 上使用Python Matplotlib
  • Redis 详解
  • G1人形机器人软硬件组成
  • vite学习笔记
  • Jenkins 2.426.2配置“构建历史的显示名称,加上包名等信息“
  • 计算机网络——每一层的用到的设备及其作用
  • Spring MVC-面试题(33)
  • Python asyncio库:基本概念与使用方法
  • voc怎么转yolo,如何分割数据集为验证集,怎样检测CUDA可用性 并使用yolov8训练安全帽数据集且构建基于yolov8深度学习的安全帽检测系统
  • React+MapBox GL JS引入URL服务地址实现自定义图标标记地点、区域绘制功能
  • vue 鼠标经过时显示/隐藏其他元素
  • FPGA高效验证工具Solidify 8.0:全面重构图形用户界面