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

    关注

    240

    文章

    23108

    浏览量

    658033

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

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

收藏 人收藏

    评论

    相关推荐

    基于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 466次阅读

    COB光源与LED珠的区别

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

    低压差分信号(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>墙中的应用

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

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

    一个简单的无线LED电路

    这篇文章解释了一个简单的无线 LED 电路,可用于夜间自动打开 LED 以照亮绘画。室内
    的头像 发表于 02-25 14:03 1143次阅读
    一个简单的无线<b class='flag-5'>LED</b><b class='flag-5'>灯</b>电路

    全光谱和普通led的区别

    全光谱和普通led的区别  全光谱和普通LED是目前市场上常见的两种照明产品,它们
    的头像 发表于 02-18 18:07 7495次阅读

    led是什么意思有什么用

    LED是一种以LED(发光二极管)为光源的照明设备。LED灯具有很高的能效、长寿命、环保等特点,因此照明领域得到广泛应用。本文将详细介绍
    的头像 发表于 02-01 17:27 2208次阅读

    LED关灯后闪烁的解决方法

    LED以其亮度大、耗能低、寿命长等特点,逐步霸占当今电灯市场。一般来说,LED是很难发生问题的,L
    发表于 02-01 16:40 1766次阅读

    LED的优点和用途

    LED是一种能效高、寿命长的照明产品,具有许多优点,并且各个领域有广泛的用途。下面将介绍LED的优点和用途。 一、
    的头像 发表于 01-15 14:42 2786次阅读

    LED闪光电路图分享

    ,由于LED闪光使用的是LED芯片,因此可以通过调整电流来控制闪光的亮度,从而实现更加精确的曝光控制。摄影领域,
    的头像 发表于 01-08 18:19 2345次阅读
    <b class='flag-5'>LED</b>闪光<b class='flag-5'>灯</b>电路图分享

    LED闪烁的原因 LED闪烁故障解决方法

    LED闪烁的原因 LED闪烁故障解决方法 LED闪烁是指在正常使用过程中,
    的头像 发表于 12-11 15:31 7189次阅读

    全光谱和普通LED的区别?

    全光谱和普通LED的区别?我 全光谱和普通LED
    的头像 发表于 12-09 14:57 4323次阅读

    如何减少LED透明屏死的问题?

    如何减少LED透明屏死的问题? 随着技术和市场的发展,LED透明屏作为一种新型的显示屏幕逐渐普及。然而,实际使用过程中,人们经常会遇到LED
    的头像 发表于 12-09 14:22 752次阅读

    直插式led珠和贴片式led珠的优点与差异

    直插式LED珠和贴片式LED珠是两种常见的LED封装形式,它们结构、优点和适用场景上存在一
    的头像 发表于 12-05 10:44 2607次阅读