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
    +关注

    关注

    242

    文章

    23459

    浏览量

    665436

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    国产处理器RK3568教学实验箱操作案例:LED控制实验

    Linux系统下GPIO的使用方法;3、通过编写应用程序实现控制LED的亮灭。三、实验原理管脚控制根据原理图,可知LED1和LED2的管脚控制:LE
    的头像 发表于 10-18 08:07 837次阅读
    国产处理器RK3568教学<b class='flag-5'>实验</b>箱操作案例:<b class='flag-5'>LED</b><b class='flag-5'>灯</b>控制<b class='flag-5'>实验</b>

    霍尔开关在鱼缸LED中的应用

    水温。 你知道吗?霍尔开关在鱼缸LED中起着关键性作用,霍尔开关是如何应用于LED板中的呢? 鱼缸
    的头像 发表于 10-09 09:59 373次阅读

    基于RK3568教学实验箱操作案例分享:4-1 LED控制实验

    1是GPIO0_D5_d管脚控制。 LED2是GPIO0_D6_d管脚控制。 本实验通过向用户可编程指示LED设备节点反复交替写入1、0数值,实现
    发表于 09-23 14:06

    led是什么类型负载电路

    ,将电能直接转换为光能。与传统的白炽、荧光等相比,LED灯具有更高的能效和更长的使用寿命。 LED的工作原理
    的头像 发表于 09-19 11:10 1132次阅读

    led启动电流是额定电流的几倍

    的,这意味着正常工作状态下,LED的电流是恒定的,即等于其额定电流。然而,启动瞬间,由于电路中的电容等元件需要充电,可能会产生一个短暂的冲击电流,这个电流可能会高于额定电流。 关
    的头像 发表于 09-19 11:09 2904次阅读

    COB光源与LED珠的区别

    COB(Chip on Board)珠和LED(Light Emitting Diode)珠都是用于照明的光源技术,但它们结构和性能上有一些区别。 结构: COB
    的头像 发表于 09-19 09:33 6471次阅读

    低压差分信号(LVDS)LED墙中的应用

    电子发烧友网站提供《低压差分信号(LVDS)LED墙中的应用.pdf》资料免费下载
    发表于 08-30 09:23 0次下载
    低压差分信号(LVDS)<b class='flag-5'>在</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>墙中的应用

    低压线性恒流LED恒流驱动芯片:用于洗墙和线条

    洗墙和线条是两种常见的LED照明产品,它们都需要使用LED恒流驱动芯片来确保稳定、可靠的电流供应,从而保证LED的使用寿命和亮度。  
    的头像 发表于 08-16 10:04 1250次阅读

    LED高精密板:卓越照明

    LED 高精密板是一种基于发光二极管(LED)技术的照明设备,它具有高亮度、高效率、长寿命、节能环保等优点,被广泛应用于室内外照明、汽车照明、显示屏等领域。捷多邦小编今天与大家分享LED
    的头像 发表于 08-08 11:42 395次阅读

    LED基板,装修必备好物

    的相关内容,一起看看吧~ LED基板的作用 1.电气连接:LED基板为 LED 珠提
    的头像 发表于 08-06 17:29 353次阅读

    摄影补光常用LED珠一览表

    影补光珠用到的LED珠有很多种,如5600K-6500K色温的LED珠、3500K-4500K色温的
    的头像 发表于 07-18 13:51 1900次阅读
    摄影补光<b class='flag-5'>灯</b>常用<b class='flag-5'>LED</b><b class='flag-5'>灯</b>珠一览表

    LED圣诞电路图 LED圣诞的工作原理和特点

    LED圣诞作为现代圣诞节装饰的重要组成部分,以其独特的魅力和优势,全球范围内得到了广泛的应用和喜爱。
    的头像 发表于 07-02 17:15 2226次阅读
    <b class='flag-5'>LED</b>圣诞<b class='flag-5'>灯</b>电路图 <b class='flag-5'>LED</b>圣诞<b class='flag-5'>灯</b>的工作原理和特点

    如何使用万用表检测LED的好坏

    LED作为现代照明领域的重要一员,以其高效、节能、环保等优点,广泛应用于家庭、商业、工业等各个领域。然而,由于LED珠的复杂性和使用环境的不确定性,
    的头像 发表于 05-13 16:53 1.7w次阅读

    STM32L496-discovery生成的LED无法点亮是什么原因?

    板子是STM32L496-discovery。用网上教程使用stmcube生成LED点亮实验,无法点亮。但用L496自带的GPIO程序运行却可以点亮。不知道什么原因,请大神解答。
    发表于 04-28 08:01