0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在rv-star板子上点LED灯实验

嵌入式IoT 来源:嵌入式IoT 作者:嵌入式IoT 2021-03-29 16:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.实验目的

2.环境搭建

3.实验结果与代码分析

4.调用层次分析

1.实验目的本实验主要在rv-star的板子上点亮RGB灯。

通过一个简单的GPIO操作实验,分析RISCV MCU目前的编程模型。

2.环境搭建实验下载操作可以按照我之前的文章来操作

首先导入工程

5ec83174-8ec6-11eb-8b86-12bb97331649.png

然后选择工程

调试选择openocd

5f7295f6-8ec6-11eb-8b86-12bb97331649.png

最后,直接下载即可。

3.实验结果与代码分析入口在main函数

main函数中调用了led_config();函数

该函数的实现如下:

void led_config(void)

{

for(int i=0; i《LEDn; i++)

{

gd_rvstar_led_init(i);

gd_rvstar_led_on(i);

delay_1ms(1000);

gd_rvstar_led_off(i);

}

}

首先LEDn在gd32vf103_rvstar.h中

/* rvstar board low layer led */

#define LEDn 3U

定义了三个LED。

接着调用gd_rvstar_led_init初始化gpio。

其实际的实现可以看如下的代码

/* Defines for LED functio/* Defines for LED / Key functions to new / general API */

#define gd_rvstar_led_init gd_led_init

#define gd_rvstar_led_on gd_led_on

#define gd_rvstar_led_off gd_led_off

#define gd_rvstar_led_toggle gd_led_toggle

实际上执行的是gd_led_init,现在看看该函数的实现

/* eval board low layer private functions */

/*!

* rief configure led GPIO

* param[in] lednum: specify the led to be configured

* arg LED1

* param[out] none

*

etval none

*/

void gd_led_init(led_typedef_enum lednum)

{

/* enable the led clock */

rcu_periph_clock_enable(`[lednum]);

/* configure led GPIO port */

gpio_init(GPIO_PORT[lednum], GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN[lednum]);

GPIO_BOP(GPIO_PORT[lednum]) = GPIO_PIN[lednum];

}

首先调用rcu_periph_clock_enable初始化对于的GPIO时钟

对于GPIO_CLK有如下的定义。

static const rcu_periph_enum GPIO_CLK[LEDn] = {LEDG_GPIO_CLK,LEDB_GPIO_CLK,LEDR_GPIO_CLK};

#define LEDG_PIN GPIO_PIN_1

#define LEDG_GPIO_PORT GPIOA

#define LEDG_GPIO_CLK RCU_GPIOA

#define LEDB_PIN GPIO_PIN_3

#define LEDB_GPIO_PORT GPIOA

#define LEDB_GPIO_CLK RCU_GPIOA

#define LEDR_PIN GPIO_PIN_2

#define LEDR_GPIO_PORT GPIOA

#define LEDR_GPIO_CLK RCU_GPIOA

简单的说,就是LED绿灯对应的是PA1,LED蓝灯对应PA3,LED红灯对应PA2。

查看原理图

6034df9e-8ec6-11eb-8b86-12bb97331649.png

对应芯片的引脚

60a18c70-8ec6-11eb-8b86-12bb97331649.png

不难看出,操作一个gpio的流程主要是三部分

1.设置GPIO时钟

2.设置初始化设置GPIO

3.操作对应的GPIO位

4.调用层次分析main--》gd32vf103_rvstar--》gd32vf103_xx.c--》寄存器操作

所以如果需要自己实现板子的定义,只需要修改gd32vf103_rvstar中间层即可。

原文标题:rv-star RGB LED灯实验

文章出处:【微信公众号:嵌入式IoT】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24440

    浏览量

    687538

原文标题:rv-star RGB LED灯实验

文章出处:【微信号:Embeded_IoT,微信公众号:嵌入式IoT】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    求助,关于华为IoT-Studio下使用RV-STAR开发板下载程序问题求解

    您好,今天刚拿到开发板,我想咨询一下RV-STAR 开发板下载程序的方式,第一个问题: 1、板载调试器只能通过OPENOCD调试,可以下载程序吗?如果可以,参数如何配置呢?见下面图片 2、USB这里的串口不能ISP下载程序对吧?只能通过MCU的其他串口进行ISP下载。
    发表于 11-11 07:08

    RV-STAR串口无法显示怎么解决?

    RV-Star开发板IoT-Studio下下载,调试。 2.最近在研究这个串口打印,发现USB这个UART4无法打印,另外测试串口1,也就是USBS这个引脚,这个是USART0的RX,也无法打印
    发表于 11-10 07:57

    关于RV-STAR开发板插上USB,电脑为什么会显示识别到两个串口呢?

    刚买来时还是只显示识别到一个串口,最近莫名奇妙,我们几个同学都是这个问题,插上RV-STAR开发板,设备管理器显示两个串口?
    发表于 11-10 06:31

    RV-STAR开发板,Windows 7 32位环境下,Hbird_Driver 和 OpenOCD 不运行的解决办法

    的 dpinst32.exe。之后,RV-STAR 设备管理器中将只显示一个COM口,另一个是 Hbird FTDI Driver 设备。
    发表于 11-07 08:17

    RV-STAR开发板使用JLink连接不上,什么原因?

    用Type C连接RV-STAR开发板下载和调试都OK,但是使用JLink连接不上,按照Nuclei Studio IDE 使用说明Release 2020.09 的操作,同时也按论坛上朋友说的更新JLink驱动为BULK interface,还是连接不上,请问还需要注意什么?错误信息如下:
    发表于 11-07 07:27

    使用RV-STAR写入模板程序时出错怎么解决?

    我使用的是官方提供的RV-STAR板子,操作系统环境是Windows10。连上板子后也能识别到串口: 下载调试的程序就是模板提供的helloworld,在下载时出现以下错误: 请问是出现了什么问题?要如何解决?谢谢。
    发表于 11-06 06:58

    使用平头哥剑池CDK点亮RV-STAR的板载LED

    开始接触平头哥剑池CDK,摸索(鼠标乱点)了一下,发现了里面竟然有nuclei_rvstar的sdk, 心情有点小激动。恰好手中有一块RV-STAR板子,于是就想着那正好建个工程点个LED
    发表于 11-05 10:36

    RVMCU课堂「2」: 手把手教你玩转RVSTAR—SEGGER Embedded Studio+蜂鸟调试器篇

    本教程以板上按键控制点亮RV-STAR开发板上的LED为目标,从IDE的下载安装开始详细介绍了使用SEGGER Embedded Studio+蜂鸟调试器进行RISC-V嵌入式开发的方法。 系统
    发表于 10-31 08:29

    RVMCU课堂「4」:手把手教你玩转RV STAR——Nuclei Studio+蜂鸟调试器篇

    调试器,连接非常的方便,一块板子一根线就可以接上,如下图; RV-STAR开发板用户手册(Nuclei Studio IDE版)》文档中找到如下方法; 我们先到git上找到代码; 可以看到,点灯
    发表于 10-31 08:06

    RVMCU课堂「12」: 手把手教你玩转RVSTAR—外部中断篇

    [size=14.6667px]NucleiStudio IDE 202102版 硬件需求 RV-STAR开发板 中断知识介绍 外部中断处理介绍 SoC层面,GD32VF103芯片
    发表于 10-31 07:39

    RVMCU课堂「13」: 手把手教你玩转RVSTAR—UART通信篇

    和电脑建立连接的,了解了这个才便于我们稍后编写实验代码。 实验1:返回接收的字符 实验1是让RV-STAR开发板接收从PC主机发送的字符,再回发给PC主机。
    发表于 10-31 07:02

    RVMCU课堂「5」:手把手教你玩转RV STAR—Nuclei Studio+JLink篇

    。VTref引脚要接到RV-STAR开发板RGB LED下方的3V3接口; 使用时Type-C也需要连接,起到供电的作用。连接后参考实物图如下: 06调试运行helloworld
    发表于 10-31 06:08

    RVMCU课堂「23」: 手把手教你玩转RVSTAR— DAC应用篇

    /模拟转换器)。这期内容我们将通过一个用旋钮控制LED亮度的小实验带领大家了解RV-STAR开发板上的DAC的基础用法。 系统环境 Windows 10-64bit 软件平台 NucleiStudio
    发表于 10-28 08:12

    VSCode环境下的用PlatformIO IDE进行RISC-V嵌入式开发的方法

    简介:本教程以点亮RV-STAR开发板上的板载LED为目标,从工具安装开始一步一步详细介绍了VSCode环境下的用PlatformIO IDE进行RISC-V嵌入式开发的方法 系统环境
    发表于 10-20 12:30

    RISC-V 使用J-Link调试RV-STAR

    J-Link调试器和RV-STAR开发板,且Nuclei Studio中运行和调试应用程序。 关于Nuclei Studio IDE下载安装、编译和调试运行等流程的详细介绍,请参见RV-STAR快速上手
    发表于 12-14 17:47