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

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

3天内不再提示

RTT大赛作品:AB32VG1开发板—RGB交替闪烁

嵌入式开发 来源:AB32VG1开发笔记 作者:AB32VG1开发笔记 2021-11-06 18:59 次阅读

【RTT大赛作品连载】AB32VG1开发板——RGB交替闪烁

1. 实验目的

让板载 RGB 灯交替闪烁

2. 开发板硬件平台

poYBAGGGRgCAejjsABX3VGGeJIc209.png

RGB灯硬件电路,可知,使用 RGB 灯组要使用

PE1 —— 红

PA1 —— 蓝

PE4 —— 绿

pYYBAGGGXsmAObtfAABjOi7lL1M212.png

poYBAGGGXteARcgAAABNgTuU8OE787.png

3. 软件编写

在 application 目录下,新建 rgb.c 和 rgb.h

//rgb.c
/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-06     Administrator       the first version
 */
#include "rgb.h"
#include "rtthread.h"
#include "board.h"

struct Led_s
{
    uint8_t LED_R;
    uint8_t LED_B;
    uint8_t LED_G;
};   //  定义一个 RGB 结构体

struct Led_s Led;
rt_thread_t rgb_thread = RT_NULL;

void RGB_Init(void)
{
    //  获得 led
    Led.LED_R = rt_pin_get("PE.1");
    Led.LED_G = rt_pin_get("PE.4");
    Led.LED_B = rt_pin_get("PA.1");
    //  设置引脚为输出方式
    rt_pin_mode(Led.LED_R, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_G, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_B, PIN_MODE_OUTPUT);

    rt_kprintf("rgb init success\n");
}

//传入参数  on=1:对应亮,on=0:对应灭
//红灯驱动
void RGB_Red(rt_bool_t on)
{
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
    if (on) {
        rt_pin_write(Led.LED_R, PIN_LOW);
    } else {
        rt_pin_write(Led.LED_R, PIN_HIGH);
    }
}
//蓝灯驱动
void RGB_Blue(rt_bool_t on){
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_R, PIN_HIGH);
    if (on) {
        rt_pin_write(Led.LED_B, PIN_LOW);
    } else {
        rt_pin_write(Led.LED_B, PIN_HIGH);
    }
}
//绿灯驱动
void RGB_Green(rt_bool_t on)
{
    rt_pin_write(Led.LED_R, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
    if (on) {
        rt_pin_write(Led.LED_G, PIN_LOW);
    } else {
        rt_pin_write(Led.LED_G, PIN_HIGH);
    }
}

void rgb_switch(void)
{
    static uint8_t led_num = 0;
    if(led_num == 0)
        RGB_Red(1);
    else if(led_num == 1)
        RGB_Blue(1);
    else if(led_num == 2)
        RGB_Green(1);
    led_num++;
    if(led_num == 3)
        led_num = 0;
}

void rgb_thread_entry(void* p)
{
    RGB_Init();
    while(1)
    {
        rt_thread_mdelay(500);
        rgb_switch();
    }
}

static int Thread_RGB(void)
{
    rgb_thread = rt_thread_create("rgb", rgb_thread_entry, RT_NULL, 512, 10, 10);
    if(rgb_thread == RT_NULL)
    {
        rt_kprintf("Thread_GRB Init ERROR");
        return RT_ERROR;
    }
    rt_thread_startup(rgb_thread);
}

INIT_APP_EXPORT(Thread_RGB);

//rgb.h
/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-06     Administrator       the first version
 */
#ifndef APPLICATIONS_RGB_H_
#define APPLICATIONS_RGB_H_

#endif /* APPLICATIONS_RGB_H_ */

修改main.c

/*
 * Copyright (c) 2020-2021, Bluetrum Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020/12/10     greedyhao    The first version
 */

/**
 * Notice!
 * All functions or data that are called during an interrupt need to be in RAM.
 * You can do it the way exception_isr() does.
 */

#include 
#include "board.h"

int main(void)
{
    rt_kprintf("Hello, world\n");

    while (1)
    {
        rt_thread_mdelay(500);
        rt_thread_mdelay(500);
    }
}

4. 程序编译下载

编译程序,点击小锤子即可。

pYYBAGGGRnmADAsxAAKXmT_LCcc372.png

下载程序

打开我们下载的Downloader软件,双击Downloader.exe

配置连接串口,千万不要搞错串口号哦。

选择工程目录下的\Debug\rtthread.dcf,这里我的完整目录是

D:\RT-ThreadStudio\workspace\ab32vg1_demo\Debug\rtthread.dcf

点击开始即可下载成功

poYBAGGGRoeAOoWjAAEzlPzfcAs365.png

5. 实验现象:

download 串口打印 msh 控制台信息

板载RGB灯,红色绿色蓝色交替闪烁。

6. 总结

每一个伟大的程序员都要从 led 及 helloworld 开始,哈哈。

编辑:fqj

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

    关注

    5922

    文章

    41499

    浏览量

    614172
  • RTT
    RTT
    +关注

    关注

    0

    文章

    52

    浏览量

    16773
  • 中科蓝讯
    +关注

    关注

    7

    文章

    44

    浏览量

    9489
收藏 人收藏

    评论

    相关推荐

    【文章连载】RT-Thread创新应用大赛文章汇总

    RTT大赛作品AB32VG1开发板RGB交替闪烁RTT大赛作品AB32VG1开发板开发环境搭建 专栏作者:萌萌的魔法世界 【RT-Thread创新应用设
    发表于 10-11 15:13

    RISC-V架构开发板AB32VG1测评之GPIO点灯

    AB32VG1 开发板是以中科蓝讯 (Bluetrum) 公司推出的基于RISC-V 架构的高配置芯片 AB32VG1 为核心所组成的。 · CPU:
    的头像 发表于 10-28 11:48 7497次阅读
    RISC-V架构<b>开发板</b><b>AB32VG1</b>测评之GPIO点灯

    RTT大赛作品连载】 AB32VG1上手

    AB32VG1上手操作,修改例程运行中的问题,成功点亮RGB
    的头像 发表于 10-28 18:31 7058次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】 <b>AB32VG1</b>上手

    RTT大赛作品连载】AB32VG1评估到货点灯测试

    AB32VG1评估到货点灯测试.
    的头像 发表于 11-04 08:55 7199次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b>评估<b>板</b>到货点灯测试

    RTT大赛作品AB32VG1开发板OLED显示实验

    AB32VG1,在做OLED显示实验时,很多关于AB32VG1驱动OLED的文章,很多都是官方例程操作,在msh窗口中输入测试指令,测试驱动是否正常。很少有关于在main函数中直接实现的,本编文章直接在MAIN函数实现OLED显示,上电自动执行。
    的头像 发表于 11-05 16:03 5535次阅读
    <b>RTT</b><b>大赛</b><b>作品</b>:<b>AB32VG1</b><b>开发板</b>OLED显示实验

    RTT大赛作品AB32VG1开发板—按键扫描

    ab32vg1开发板按键实验
    的头像 发表于 11-15 09:54 3608次阅读
    <b>RTT</b><b>大赛</b><b>作品</b>:<b>AB32VG1</b><b>开发板</b>—按键扫描

    RTT大赛作品连载】AB32VG1评估到货控制彩灯测试

    RTT大赛作品连载】AB32VG1评估到货控制彩灯测试篇;接下来看看在如何AB32VG1评估控制彩灯! 在RT-ThreadStudio新建项目到对应
    的头像 发表于 11-07 19:39 4577次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b>评估<b>板</b>到货控制彩灯测试

    RTT大赛作品连载】AB32VG1评估 音乐播放器

    RTT大赛作品连载】AB32VG1评估 音乐播放器
    的头像 发表于 11-12 21:11 5562次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b>评估<b>板</b> 音乐播放器

    RTT大赛作品连载】中科蓝讯AB32VG1开发板开箱篇

    AB32VG1开发板是以中科蓝讯(Bluetrum)公司推出的基于RISC-V架构的高配置芯片AB5301A为核心所组成的。【RTT大赛作品连载】中科蓝讯AB32VG1开发板开箱篇
    的头像 发表于 11-13 10:01 8773次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】中科蓝讯<b>AB32VG1</b><b>开发板</b>开箱篇

    RTT大赛作品连载】AB32VG1开发环境搭建

    AB32VG1开发环境搭建.
    的头像 发表于 11-17 08:48 8448次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b>的<b>开发</b>环境搭建

    RTT大赛作品连载】AB32VG1评估 炫酷音乐播放器

    AB32VG1评估
    的头像 发表于 11-26 08:43 7182次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b>评估<b>板</b> 炫酷音乐播放器

    RTT大赛作品连载】基于AB32VG1 sdk BLE例程

    AB32VG1 BLE开发快捷方便.
    的头像 发表于 12-06 09:07 4038次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】基于<b>AB32VG1</b> sdk BLE例程

    RTT大赛作品连载】AB32VG1开发板之开箱篇

    AB32VG1开发板的开箱之作,此开发板的硬件资源初略的介绍。
    的头像 发表于 01-04 09:19 3921次阅读
    【<b>RTT</b><b>大赛</b><b>作品</b>连载】<b>AB32VG1</b><b>开发板</b>之开箱篇

    基于AB32VG1开发板的设备温度检测

    AB32VG1开发板模拟spi驱动,读取热电偶传感器的数据,并通过串口输出,到串口屏显示图形。
    的头像 发表于 02-18 11:25 791次阅读
    基于<b>AB32VG1</b><b>开发板</b>的设备温度检测