通过 RT-Thread Studio 配置 AB32VG1 片上外设 GPIO 的引脚,控制 RGB 彩灯进行简单的颜色变换
1.2 模块介绍
开发板上板载一个三色 RGB 彩灯,原理图如下:
![pYYBAGMAwmeAKJq7AADvQ5feWB8153.png](https://file.elecfans.com/web2/M00/63/CC/pYYBAGMAwmeAKJq7AADvQ5feWB8153.png)
开发板引脚连接如下图,引脚 PA2 对应蓝灯,引脚 PE1 对应红灯,引脚 PE4 对应绿灯,RGB 为共阳极,当引脚拉低时,对应的 led 点亮
![poYBAGMAwpeAF3z9AAKkAqRNuC0222.png](https://file.elecfans.com/web2/M00/63/30/poYBAGMAwpeAF3z9AAKkAqRNuC0222.png)
点击 文件-> 新建-> RT-Thread 项目控件,选择基于开发板的项目,填写工程名字,选择我们使用到的开发板(AB32VG1),调试器我们随便选,下载方式不是通过此处下载。
![pYYBAGMAws2AGIaOAANsmqoksAo768.png](https://file.elecfans.com/web2/M00/63/CC/pYYBAGMAws2AGIaOAANsmqoksAo768.png)
工程新建后左边的项目资源管理器会显示我们的工程,我们把他展开,编译一下,编译。
结果如下:
![pYYBAGMAwvWAf7d2AAB0CLjoWhE414.png](https://file.elecfans.com/web2/M00/63/CC/pYYBAGMAwvWAf7d2AAB0CLjoWhE414.png)
代码文件如下:
rgb.c 内写入如下程序
添加头文件,定义一个 RGB 结构体,并声明 LED
#include "rgb.h"
#include
#include "board.h"
struct Led_s
{
uint8_t LED_R;
uint8_t LED_B;
uint8_t LED_G;
}; // 定义一个 RGB 结构体
struct Led_s Led;
编写初始化驱动程序,调用 rt_pin_get 获取 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.2");
// 设置引脚为输出方式
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);
}
编写 rgb 不同颜色点灯驱动,通过 rt_pin_write 来控制 gpio 口电平高低,点亮红灯即
拉低红灯引脚,拉高其他两个颜色灯的引脚
//传入参数 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);
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5017文章
18496浏览量
293165 -
RT
+关注
关注
0文章
73浏览量
39892 -
GPIO
+关注
关注
16文章
1151浏览量
50868
发布评论请先 登录
相关推荐
如何在RT-Thread Studio完成对RA2L1板的环境搭建以及gpio的输入输出检测?
有幸参加RT-Thread的活动,体验RT-Thread Studio 和瑞萨 CPK-RA2L1评估板。本篇文章主要讲解如何在RT-Thread
![如何在<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>完成对RA2L1板的环境搭建以及<b class='flag-5'>gpio</b>的输入输出检测?](https://file1.elecfans.com/web2/M00/A8/43/wKgZomUVL2uANmWuAACLib9r6ts990.jpg)
在RT-Thread Studio上配置rtthread CANFD驱动来控制M3508电机
本文旨在RT-Thread Studio上配置rtthread CANFD驱动来控制M3508电机,不涉及任何原理
开发环境:RT-Thread
发表于 10-08 11:44
•692次阅读
![在<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>上<b class='flag-5'>配置</b>rtthread CANFD驱动来控制M3508电机](https://file1.elecfans.com/web2/M00/A7/58/wKgaomUjXJmAS56lAACUdF06ewQ979.jpg)
怎么在 RT-Thread Studio 上使用 RT-Thread Nano
请教一下如何在 RT-Thread Studio 上使用 RT-Thread Nano?
发表于 04-02 07:27
在 RT-Thread Studio 上使用 RT-Thread Nano
本文介绍了如何在 RT-Thread Studio 上使用 RT-Thread Nano,并以创建 stm32f103RB 的 Nano 工程为例。准备工作安装
发表于 05-18 15:59
使用RT-Thread Studio开发各个外设的驱动的操作方法
Studio 可以通过在board.h中配置引脚,实现初始化功能如果感觉RT-Thread Studio
发表于 03-21 10:44
基于RT-Thread Studio的ADC外设使用方案介绍
ART-Pi,创建模板工程。2、基于RT-Thread Studio 使用STM32单片机的ADC外设一、工程建立 工程建立和时钟配置这里不再赘述,可以看上一篇文章,在 PWM 中详细
发表于 03-28 16:57
RT-Thread Studio快速配置GPIO进行点灯
本章通过RT-Thread Studio配置AB32VG1片上外设GPIO的引脚,控制RGB彩灯
发表于 12-14 18:44
•10次下载
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>快速<b class='flag-5'>配置</b><b class='flag-5'>GPIO</b>进行点灯](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RT-Thread Studio配置连接WIFI模块
通过 RT-Thread Studio 配置 AB32VG1 片上外设 UART1 ,搭载 at_device 软件包连接WIFI模块
发表于 12-20 19:11
•16次下载
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b>连接WIFI模块](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RT-Thread Studio驱动SD卡
RT-Thread Studio驱动SD卡前言一、创建基本工程1、创建Bootloader2、创建项目工程二、配置RT-Thread Settings三、代码分析1.引入库2.读入数据
发表于 12-27 19:13
•20次下载
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>驱动SD卡](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何通过RT-Thread Studio配置片上外设UART
通过 RT-Thread Studio 配置 AB32VG1 片上外设 UART 的功能,实现开发板和 PC 进行 通信。 1.2. 模块介绍 AB32VG1 的串口 0 被用作系统调
![如何通过<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b>片上<b class='flag-5'>外设</b>UART](https://file.elecfans.com/web2/M00/63/CC/pYYBAGMAwbKACBDUAAFj7qdEgWI091.png)
使用RT-Thread Studio进行智能家居终端的设计
本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等功能
![使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>进行智能家居终端的设计](https://file1.elecfans.com/web2/M00/8E/3C/wKgaomTDfrKAOUCQAADZr_2qY8Q463.jpg)
通过RT-Thread Studio配置N32L406片上外设DAC的功能
本文通过 RT-Thread Studio 配置 N32L406 片上外设 DAC 的功能,通过使用dac_open,dac_write,dac_close函数实现DAC的使用,不需要
![通过<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b>N32L406片上<b class='flag-5'>外设</b>DAC的功能](https://file1.elecfans.com/web2/M00/90/96/wKgaomTbG1WABe5wAADYaLa1VIg112.jpg)
评论