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

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

3天内不再提示

【RTT大赛作品连载】AB32VG1开发板之点灯篇

RT-Thread创新应用 来源:RT-Thread创新应用 作者:RT-Thread创新应用 2022-01-04 09:16 次阅读

在开始点灯之前,我们需要从“https://www.rt-thread.org/page/studio.html”下载RT-Thread Studio开发工具,从“https://gitee.com/bluetrum/Downloader/blob/main/Downloader_v1.9.7.zip”下载烧录固件的工具,然后将RT-Thread Studio快速安装完毕后,安装针对AB32VG1开发板的资源包

poYBAGHRUNCAQXlwAAHwFpP3YfQ785.png

安装RT-Thread Studio中集成SDK所必要的最新资源库

poYBAGHRUhKAHPnGAAH2yklBXJ0918.png

工程源码的编译当然少不了交叉编译器,工程采用RISC-V GCC编译器,勾选该项并安装

poYBAGHRUriALMjUAAH12JwcBj8882.png

安装完这些组件后,然后将开发板与PC端连接,新建工程,选择“基于开发板”

pYYBAGHRU9uARZg7AANEgU9_fho981.png

根据自己的需要,使能串口外设接口

poYBAGHRVHmACg8_AAFVzg-7dKU015.png

开发板上板载一个三色RGB彩灯,控制RGB灯的变化实际上就是控制这三个GPIO口的电平输出。板上的电路连接原理图如下:

pYYBAGHRWfWAGutQAACWHS0opwU043.png

由上图可知,引脚PA1对应蓝灯,引脚PE1对应红灯,引脚PE4对应绿灯,RGB为共阳极,当引脚拉低时,对应的led点亮,在“applications”文件夹下新建立一个rgb.c和rgb.h文件,源代码编辑如下:

#ifndef APPLICATIONS_RGB_C_
#define APPLICATIONS_RGB_C_

#endif /* APPLICATIONS_RGB_C_ */

#include "rgb.h"
#include 
#include "board.h"

struct Led_s
{
    uint8_t LED_R;
    uint8_t LED_B;
    uint8_t LED_G;
};

struct Led_s Led;

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);
}

//红灯驱动
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);
    }
}

主函数的源文件中包含“rgb.h”头文件,然后编写rgb彩灯运行线程,三种颜色依次切换,中间延时1秒钟。

static void rgb_thread_entry(void* p)
{
    RGB_Init();
    while(1)
    {
      rt_thread_mdelay(1000);
      RGB_Blue(1);
      rt_thread_mdelay(1000);
      RGB_Green(1);
      rt_thread_mdelay(1000);
      RGB_Red(1);
    }
}

接着创建线程启动函数,用于启动上一步编写的线程主体

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

最后记得将线程初始化添加入系统初始化中:INIT_APP_EXPORT(Thread_RGB);

然后编译,打开“Downloader.exe”下载软件,选择刚才编译生成的.dcf文件,选择对应的串口号(如果电脑未识别到串口,需要安装对应的USB转串口驱动),点击“开始”,按一下板子上复位按键,即可完成程序的烧录。

开发板烧录完成后,RGB灯点亮的效果如下图所示,此次分享告一段落,使用RT-Thread Studio能够更快的构建工程框架,而且编辑代码时会自动弹出备选的参考函数,实现的方式引入线程的概念,如果能够使用RT-Thread Studio内部集成的下载接口下载程序就更好了,这里必须采用官方提供的“Downloader.exe”下载工具。

poYBAGHRY0iAKJXlAJwGvRj5km0022.png

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

    关注

    25

    文章

    4914

    浏览量

    97101
  • RT-Thread
    +关注

    关注

    31

    文章

    1266

    浏览量

    39864
  • RISC-V
    +关注

    关注

    44

    文章

    2216

    浏览量

    45969
  • 中科蓝讯
    +关注

    关注

    9

    文章

    53

    浏览量

    9843
收藏 人收藏

    评论

    相关推荐

    RTT大赛作品连载AB32VG1开箱、搭建环境、演示、点灯

    AB32VG1】开箱、搭建环境、演示、点灯,为下面做好准备。
    的头像 发表于 10-25 16:47 4987次阅读
    【<b class='flag-5'>RTT</b><b class='flag-5'>大赛</b><b class='flag-5'>作品</b><b class='flag-5'>连载</b>】<b class='flag-5'>AB32VG1</b>开箱、搭建环境、演示、<b class='flag-5'>点灯</b>

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

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

    RTT大赛作品连载AB32VG1上手

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

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

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

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

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

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

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

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

    RTT大赛作品连载AB32VG1评估到货控制彩灯测试
    的头像 发表于 11-07 19:39 5152次阅读
    【<b class='flag-5'>RTT</b><b class='flag-5'>大赛</b><b class='flag-5'>作品</b><b class='flag-5'>连载</b>】<b class='flag-5'>AB32VG1</b>评估<b class='flag-5'>板</b>到货控制彩灯测试

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

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

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

    介绍电路原理图分析接口说明,AB32VG1开发板是以中科蓝讯(Bluetrum)公司推出的基于RISC-V架构的高配置芯片AB5301A为核心所组成的。【RTT
    的头像 发表于 11-13 10:01 1w次阅读
    【<b class='flag-5'>RTT</b><b class='flag-5'>大赛</b><b class='flag-5'>作品</b><b class='flag-5'>连载</b>】中科蓝讯<b class='flag-5'>AB32VG1</b><b class='flag-5'>开发板</b>开箱<b class='flag-5'>篇</b>

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

    基于RT-Thread的AB32VG1开发环境搭建.
    的头像 发表于 11-17 08:48 9354次阅读
    【<b class='flag-5'>RTT</b><b class='flag-5'>大赛</b><b class='flag-5'>作品</b><b class='flag-5'>连载</b>】<b class='flag-5'>AB32VG1</b>的<b class='flag-5'>开发</b>环境搭建

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

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

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

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

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

    连载】中科蓝讯AB32VG1开发板开箱专栏作者:煲仔卤煮的炼钢【RTT大赛
    发表于 10-11 15:13

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

    收到开发板先上靓照中科蓝讯AB32VG1开发板开箱AB32VG1开发板一块TypeCo数据线一条开发板
    发表于 11-24 08:00

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

    RT-Thread基本中科蓝讯AB32VG1 BLE开发快捷方便.
    的头像 发表于 12-06 09:07 4945次阅读
    【<b class='flag-5'>RTT</b><b class='flag-5'>大赛</b><b class='flag-5'>作品</b><b class='flag-5'>连载</b>】基于<b class='flag-5'>AB32VG1</b> sdk BLE例程