GD32VW553-IOT V2开发板 【实现呼吸灯】

[复制链接]
269|0
本文转载自iCEasy商城口碑评测作者:wx17581050569696
欢迎大家戳链接GD32VW553-IOT V2开发板 【实现呼吸灯】,与原贴作者互动交流哦~

视频链接
https://www.bilibili.com/video/BV19exWzqEsf/?spm_id_from=333.1387.homepage.video_card.click


前言
基于兆易创新(GigaDevice)GD32VW553——一款 RISC-V 内核的 32 位无线双模MCU的开源硬件板GD32VW553-IOT-V2。


开源口碑分享内容
一、硬件展示:
该开发板采用了全新的开源指令集架构RISC-V处理器内核,主频可达160MHz。集成了高达4MB Flash及320KB SRAM,另有32KB可配置指令高速缓存(I-Cache),大幅提升了CPU处理效率,支持2.4GHz Wi-Fi 6及BLE5.2无线连接标准;
——GD32VW553-IOT-V2全新的设计针对旧款的开发痛点进行了系统性优化:
1.Type-C 口升级:集成串口功能,配了CH340芯片,可以直接插Type-C下载,提升开发便捷性;
2.新增开关:增设用户可自定义按键及指示灯,拓展交互控制与状态显示功能;
3.板面布局优化:背面增加引脚丝印,正面仅保留关键器件丝印,布局清晰及信息聚焦;
4.FLASH 焊接位:移至背面,减少焊接风险,增加开源二次开发的灵活性;
5.BOOT 开关优化:升级为拔码式设计,简化操作逻辑,提升切换效率;
6.稳固性增强:板厚增至 1mm,提升了整体结构强度与抗变形能力。
——产品细节,如下图:
1.需自备type-C数据线,不建议使用充电宝自带的线,自测存在非数据线的产品,建议直接用买手机送的充电器的type-C数据线或者直接购买;
2.烧录时需将SW拨码到ON一边,否则软件会弹窗,如下图,复位时需拨回数字一边。

——硬件规格(参考:V2萤火工场·GD32VW553-IOT开源硬件规格书.pdf)
1.系统资源:
2.接口定义:
3.板卡布局:
4.系统框图:
二、原理图(参考:V2原理图.pdf)
——灯:[D1:电源灯;D5:自定义灯]:
——按键:[K1:复位按键;K2:自定义按键]
——BOOT:【参考数据手册:GD32VW553xx Datasheet_Rev1.2.pdf】
——开发模板:GD32VW55x_Demo_Suites_V1.4.0
——开发软件:VSCODE
——烧录软件:GD32AllInOneProgrammer
安装过程就不细说了,照着这篇测评配置,这里主要列出版本更新(1.104.1版)要注意的地方:
——安装使用工具和构建器的位置:
四、驱动代码
由于呼吸灯需要使用定时器实现,所以参考数据手册:GD32VW553xx Datasheet_Rev1.2.pdf进行配置,这里使用PB2的TIMER1_CH3;
实现效果:D5从熄灭状态缓慢到明亮状态,再缓慢熄灭,不停循环;
  1. #include "gd32vw55x.h"

  2. #include "systick.h"

  3. #include <stdio.h>

  4. #include "gd32vw553h_eval.h"



  5. void timer_config(void);



  6. void timer_config(void)

  7. {

  8.    rcu_periph_clock_enable(RCU_TIMER1);  // 使能 TIMER1 时钟



  9.    // 基本定时器配置

  10.    timer_deinit(TIMER1);

  11.    timer_parameter_struct timer_initpara;

  12.    timer_struct_para_init(&timer_initpara);



  13.    timer_initpara.prescaler = 108 - 1;  // 分频系数(108MHz / 108 = 1MHz)

  14.    timer_initpara.alignedmode = TIMER_COUNTER_EDGE;

  15.    timer_initpara.counterdirection = TIMER_COUNTER_UP;

  16.    timer_initpara.period = 1000 - 1;  // PWM 周期 = 1000 个计数(1KHz PWM)

  17.    timer_initpara.clockdivision = TIMER_CKDIV_DIV1;

  18.    timer_init(TIMER1, &timer_initpara);



  19.    // PWM 输出配置(CH0)

  20.    timer_oc_parameter_struct timer_ocinitpara;

  21.    timer_channel_output_struct_para_init(&timer_ocinitpara);



  22.    timer_ocinitpara.outputstate = TIMER_CCX_ENABLE;  // 使能输出

  23.    timer_ocinitpara.outputnstate = TIMER_CCXN_DISABLE;

  24.    timer_ocinitpara.ocpolarity = TIMER_OC_POLARITY_HIGH;  // 高电平有效

  25.    timer_ocinitpara.ocnpolarity = TIMER_OCN_POLARITY_HIGH;

  26.    timer_ocinitpara.ocidlestate = TIMER_OC_IDLE_STATE_LOW;

  27.    timer_ocinitpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;

  28.    timer_channel_output_config(TIMER1, TIMER_CH_3, &timer_ocinitpara);



  29.    timer_channel_output_pulse_value_config(TIMER1, TIMER_CH_3, 0);  // 初始占空比 = 0

  30.    timer_channel_output_mode_config(TIMER1, TIMER_CH_3, TIMER_OC_MODE_PWM0);  // PWM 模式

  31.    timer_channel_output_shadow_config(TIMER1, TIMER_CH_3, TIMER_OC_SHADOW_DISABLE);



  32.    timer_auto_reload_shadow_enable(TIMER1);  // 使能自动重载

  33.    timer_enable(TIMER1);  // 启动 TIMER1

  34. }



  35. int main(void)

  36. {

  37.    systick_config();

  38.    timer_config();



  39.    /* enable the LED clock */

  40.    rcu_periph_clock_enable(RCU_GPIOB);

  41.    gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_2);  // PA6 复用功能

  42.    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, GPIO_PIN_2);  // 推挽输出,50MHz

  43.    gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_2);



  44.    while(1) {

  45.        for (uint16_t duty = 0; duty < 1000; duty++) {

  46.            timer_channel_output_pulse_value_config(TIMER1, TIMER_CH_3, duty);

  47.            delay_1ms(1);  // 1ms 延迟,控制呼吸速度

  48.        }



  49.        // 亮度逐渐减小(占空比从 100% 到 0%)

  50.        for (uint16_t duty = 1000; duty > 0; duty--) {

  51.            timer_channel_output_pulse_value_config(TIMER1, TIMER_CH_3, duty);

  52.            delay_1ms(1);  // 1ms 延迟,控制呼吸速度

  53.        }

  54.    }

  55. }






您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部