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

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

    关注

    6074

    文章

    45340

    浏览量

    663501
  • RTT
    RTT
    +关注

    关注

    0

    文章

    66

    浏览量

    18134
  • 中科蓝讯
    +关注

    关注

    10

    文章

    64

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【获奖名单】2025开发板评测大赛优秀开发者、最受欢迎开发板公布

    各位发烧友们,大家好!2025开发板试用评测大赛已圆满落幕。经过厂商与发烧友平台的共同评选,优秀作品及人选名单现已评选完成,共选出24位优秀作品开发
    发表于 11-21 09:31

    [投票评选]2025电子发烧友开发板测评大赛--最受欢迎开发板

    call吧,助力开发者生态持续成长! 投票入口: 2025电子发烧友开发板测评大赛--最受欢迎开发板 本次投票结果,将作为平台后续挑选试用产品重要参考,欢迎大家踊跃参加哦~
    发表于 10-13 16:25

    【精选资料】开发板测评大赛作品合集!

    电子发烧友携手16家生态厂商发起开发板测评大赛,设OpenHarmony、RISC-V、Rockchip三大赛道,共计21款、160+块开发板,通过评测
    的头像 发表于 09-23 08:09 741次阅读
    【精选资料】<b class='flag-5'>开发板</b>测评<b class='flag-5'>大赛</b><b class='flag-5'>作品</b>合集!

    作品合集】飞凌嵌入式OK527N-C开发板测评

    Core_DSC280025C开发板测评作品合集 第十六期合集 : 润开鸿HH-SCDAYU800A开发板测评作品合集 第十七期合集 : 视美泰M-K
    发表于 09-22 15:54

    作品合集】视美泰M-K1HSE、3568开发板测评

    视美泰M-K1HSE、3568开发板测评作品合集 产品介绍: M-KIHSE开发板: M-KIHSE开发板是一款基于进选时空K
    发表于 09-22 10:32

    作品合集】中科昊芯Core_DSC280025C开发板测评

    中科昊芯Core_DSC280025C开发板测评作品合集 产品介绍: Core_DSC280025C核心使用了昊芯HXS320F28025CRISC-V DSP芯片,该芯片集成了吴芯自主研发
    发表于 09-18 10:52

    作品合集】玄铁Banana Pi BPI-RV2开发板测评

    玄铁Banana Pi BPI-RV2开发板测评作品合集 产品介绍: Banana Pi BPI-RV2 开源网关是⼀款基于矽昌 SF21H8898 SoC的设备,1 × 2.5 G WAN⽹络接
    发表于 09-17 10:58

    作品合集】合众HZ-T536开发板测评

    合众HZ-T536开发板测评作品合集 产品介绍: HZ-T536_MiniEVM是一款基于全志T536系列处理器设计的工业评估,集成了4核Cortex-A55和RISC-V E907协处理器。该
    发表于 09-12 09:37

    作品合集】米尔RK3576开发板测评

    米尔RK3576开发板测评作品合集 产品介绍: RK3576 是瑞芯微一款面向AI市场推出的高性能处理器,它配备了四核Cortex-A72和四 核Cortex-A53 的 CPU,集成了6TOPS
    发表于 09-11 10:19

    作品精选】2025电子发烧友开发板测评大赛作品合集!

    电子发烧友开发板测评大赛--最受欢迎开发板 以下为本次大赛作品合集: 微五科技CF5010RBT60
    发表于 09-03 15:24

    作品合集】创龙科技TLT113/TL3562-MiniEVM开发板测评

    创龙科技TLT113/TL3562-MiniEVM开发板测评作品合集 产品介绍: 创龙科技 TLT113 - MiniEVM基于全志科技 T113 - I,采用双核 ARM Cortex - A7
    发表于 09-02 11:25

    【免费试用】开发板评测大赛开启!OH 、RISC-V、Rockchip顶级开发板等你试用~

    技术人的狂欢,开发者的盛宴!2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛
    的头像 发表于 06-05 08:05 748次阅读
    【免费试用】<b class='flag-5'>开发板</b>评测<b class='flag-5'>大赛</b>开启!OH 、RISC-V、Rockchip顶级<b class='flag-5'>开发板</b>等你试用~

    一个不错的活动:电子发烧友开发板评测大赛

    “  凑齐了 OpenHarmony,Risc-V,Rocketchip 三大赛道 21 款来自不同厂家的开发板,可免费申请试用。 ”   电子发烧友开发板评测大赛正式启动!无论你是开
    的头像 发表于 05-21 11:19 466次阅读
    一个不错的活动:电子发烧友<b class='flag-5'>开发板</b>评测<b class='flag-5'>大赛</b>

    开发板评测大赛开启!顶级开发板等你来战!

    技术人的狂欢,开发者的盛宴!2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领
    的头像 发表于 05-20 08:07 372次阅读
    <b class='flag-5'>开发板</b>评测<b class='flag-5'>大赛</b>开启!顶级<b class='flag-5'>开发板</b>等你来战!

    2025电子发烧友开发板评测大赛开启!三大赛道火力全开,顶级开发板等你来战!

    技术人的狂欢,开发者的盛宴! 2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛
    发表于 05-15 15:09