找回密码
 立即注册
搜索
0赞
赞赏
手机版
扫码打开手机版
把文字装进口袋

通过RT-Thread Studio配置AB32VG1片上外设GPIO引脚控制RGB彩灯

搬运工657 2022-8-22 09:55:39
本篇文章通过 RT-Thread Studio 配置 AB32VG1 片上外设 GPIO 的引脚,控制 RGB 彩灯进行红绿蓝三色的变换。
       

        1.模块介绍开发板上板载一个三色 RGB 彩灯,电路原理图如下图示。
       

       
       

        从以上两电路图中可知,RGB彩灯阳极接3.3V电源,阴极连接电阻分别接到了LED_B、LED_G、LED_R网络标签。LED_B、LED_G、LED_R网络标签通过Header短接3-4、5-6、7-8分别连接到PA1、PE1和PE4引脚上。这样只要控制AB32VG1的PA1、PE1和PE4引脚输出低电平就可以点亮RGB,输出高电平就可以熄灭RGB。
        2.工程的创建和代码的修改
       

        如上图所示,打开RT-Thread Studio ,进入开发界面,选择文件--->新建--->RT-Thread项目,进入如下图界面,填入工程名字,工程名字自定义,重点是选择“基于开发板”这里选择AB32VG1开发板,其余保留默认即可,点击完成,项目创建成功。
       

        展开AB32VG1_RGB_GPIO项目,找到applications文件下的main.c,双击打开main.c主程序,如下图所示。
       

        这里我们把代码拷贝出来,单独来分析。
        #include
        #include "board.h"
        int main(void)
        {
        uint8_t pin = rt_pin_get("PE.1");
        //这里rt_pin_get是获取某个引脚的函数,这里是获取PE1引脚,即pin代表PE1,这个引脚是连接红色LED的。
        rt_pin_mode(pin, PIN_MODE_OUTPUT);
        //rt_pin_mode是设置引脚模式,有两个参数一个是引脚编号,另一个工作模式。这里意思是配置AB32VG1的PE1引脚为输出模式
        rt_kprintf("Hello, worldn");
        //rtthread 内核打印函数,上电工作输出Hello, world。
        while (1)
        {
        rt_pin_write(pin, PIN_LOW);
        //rt_pin_write这个函数是向相应的引脚写入高低电平。这里向PE1写入低电平,红色的亮起。
        rt_thread_mdelay(500);
        //rtthread延时函数
        rt_pin_write(pin, PIN_HIGH);
        ///这里向PE1写入低电平,红色的熄灭。
        rt_thread_mdelay(500);
        }
        }
        所以,通过上面代码分析,RT-Thread Studio默认创建的AB32VG1工程,实现RGB的红色LED闪烁的功能。那我们就可以仿照这个程序,对主程序做如下修改,即可实现RGB三色的变换闪烁。代码如下:
        #include
        #include "board.h"
        int main(void)
        {
        uint8_t LED_red = rt_pin_get("PE.1");
        uint8_t LED_blue = rt_pin_get("PA.1");
        uint8_t LED_green = rt_pin_get("PE.4");
        rt_pin_mode(LED_red, PIN_MODE_OUTPUT);
        rt_pin_mode(LED_blue, PIN_MODE_OUTPUT);
        rt_pin_mode(LED_green, PIN_MODE_OUTPUT);
        rt_kprintf("Hello, worldn");
        while (1)
        {
        rt_pin_write(LED_red, PIN_LOW);
        rt_thread_mdelay(500);
        rt_pin_write(LED_red, PIN_HIGH);
        rt_thread_mdelay(500);
        rt_pin_write(LED_blue, PIN_LOW);
        rt_thread_mdelay(500);
        rt_pin_write(LED_blue, PIN_HIGH);
        rt_thread_mdelay(500);
        rt_pin_write(LED_green, PIN_LOW);
        rt_thread_mdelay(500);
        rt_pin_write(LED_green, PIN_HIGH);
        rt_thread_mdelay(500);
        }
        }
        修改好之后,编译程序没有错误,利用downloader下载程序至开发板即可,运行效果如下图所示。
       

       
       

       
       

        编辑:fqj

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

您需要登录后才可以回帖 立即登录
太赞了
2022-8-23 12:06:49
2022-8-23 12:11:43
不错
2022-8-23 15:17:39
◥█▄▃▁
.......◥█☆█▅▄▃▁▁▁▁▁▃▄▅▅ 贵州代表队 ▅▅▅▄▁
〓▇█████ 雷雷雷雷雷雷██████████████████▅▄▃▁▁
〓〓〓█████████████◤
....................轰炸过
..................轰炸过
...............轰炸过
............轰炸过
..........轰炸过
........轰炸过
......轰炸过
.....轰炸过
....轰炸过
...轰炸过
..轰炸过
.轰炸过 .轰炸过 楼上l楼下保持队行 !!!!!
2022-8-27 18:36:42
◥█▄▃▁
.......◥█☆█▅▄▃▁▁▁▁▁▃▄▅▅北京代表队 ▅▅▅▄▁
〓▇█████ 雷雷雷雷雷雷██████████████████▅▄▃▁▁
〓〓〓█████████████◤
....................轰炸过
..................轰炸过
...............轰炸过
............轰炸过
..........轰炸过
........轰炸过
......轰炸过
.....轰炸过
....轰炸过
...轰炸过
..轰炸过
.轰炸过 .轰炸过 楼上l楼下保持队行 !!!!!
2022-8-27 19:57:08
好贴啊!只有那种真理在握,洞视这个世界真实本质的人,才能显示出这样惊人的笔力。在日益苍白肤浅的网
络里,我从楼主的帖子中不但看到了真理,更加看到了网络的希望。为表达我对楼主的敬意,也是为了向楼主
学习。我决心要把这个帖子顶上去! 楼主的帖子实在是写得太好了。
2022-8-28 04:42:10
前来支持~~~~~~~~~~~~~~~~~~~
2022-8-28 10:49:09
还是看不懂,复杂
2022-8-28 16:56:08
支持,赞
2022-8-28 23:03:07
123下一页
返回顶部