你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 技术中心 >> 传感技术 >> RT-Thread Studio配置片上外设GPIO的引脚

RT-Thread Studio配置片上外设GPIO的引脚


通过 RT-Thread Studio 配置 AB32VG1 片上外设 GPIO 的引脚,控制 RGB 彩灯进行简单的颜色变换

1.2 模块介绍

开发板上板载一个三色 RGB 彩灯,原理图如下:

开发板引脚连接如下图,引脚 PA2 对应蓝灯,引脚 PE1 对应红灯,引脚 PE4 对应绿灯,RGB 为共阳极,当引脚拉低时,对应的 led 点亮

点击 文件-> 新建-> RT-Thread 项目控件,选择基于开发板的项目,填写工程名字,选择我们使用到的开发板(AB32VG1),调试器我们随便选,下载方式不是通过此处下载。

工程新建后左边的项目资源管理器会显示我们的工程,我们把他展开,编译一下,编译。

结果如下:

代码文件如下:

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

用户评论

发评论送积分,参与就有奖励!

发表评论

评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

深圳市品慧电子有限公司