本篇文章通過 RT-Thread Studio 配置 AB32VG1 片上外設(shè) GPIO 的引腳,控制 RGB 彩燈進(jìn)行紅綠藍(lán)三色的變換。
1.模塊介紹開發(fā)板上板載一個(gè)三色 RGB 彩燈,電路原理圖如下圖示。
從以上兩電路圖中可知,RGB彩燈陽極接3.3V電源,陰極連接電阻分別接到了LED_B、LED_G、LED_R網(wǎng)絡(luò)標(biāo)簽。LED_B、LED_G、LED_R網(wǎng)絡(luò)標(biāo)簽通過Header短接3-4、5-6、7-8分別連接到PA1、PE1和PE4引腳上。這樣只要控制AB32VG1的PA1、PE1和PE4引腳輸出低電平就可以點(diǎn)亮RGB,輸出高電平就可以熄滅RGB。
2.工程的創(chuàng)建和代碼的修改
如上圖所示,打開RT-Thread Studio ,進(jìn)入開發(fā)界面,選擇文件--->新建--->RT-Thread項(xiàng)目,進(jìn)入如下圖界面,填入工程名字,工程名字自定義,重點(diǎn)是選擇“基于開發(fā)板”這里選擇AB32VG1開發(fā)板,其余保留默認(rèn)即可,點(diǎn)擊完成,項(xiàng)目創(chuàng)建成功。
展開AB32VG1_RGB_GPIO項(xiàng)目,找到applications文件下的main.c,雙擊打開main.c主程序,如下圖所示。
這里我們把代碼拷貝出來,單獨(dú)來分析。
#include
#include "board.h"
int main(void)
{
uint8_t pin = rt_pin_get("PE.1");
//這里rt_pin_get是獲取某個(gè)引腳的函數(shù),這里是獲取PE1引腳,即pin代表PE1,這個(gè)引腳是連接紅色LED的。
rt_pin_mode(pin, PIN_MODE_OUTPUT);
//rt_pin_mode是設(shè)置引腳模式,有兩個(gè)參數(shù)一個(gè)是引腳編號(hào),另一個(gè)工作模式。這里意思是配置AB32VG1的PE1引腳為輸出模式
rt_kprintf("Hello, worldn");
//rtthread 內(nèi)核打印函數(shù),上電工作輸出Hello, world。
while (1)
{
rt_pin_write(pin, PIN_LOW);
//rt_pin_write這個(gè)函數(shù)是向相應(yīng)的引腳寫入高低電平。這里向PE1寫入低電平,紅色的亮起。
rt_thread_mdelay(500);
//rtthread延時(shí)函數(shù)
rt_pin_write(pin, PIN_HIGH);
///這里向PE1寫入低電平,紅色的熄滅。
rt_thread_mdelay(500);
}
}
所以,通過上面代碼分析,RT-Thread Studio默認(rèn)創(chuàng)建的AB32VG1工程,實(shí)現(xiàn)RGB的紅色LED閃爍的功能。那我們就可以仿照這個(gè)程序,對(duì)主程序做如下修改,即可實(shí)現(xiàn)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);
}
}
修改好之后,編譯程序沒有錯(cuò)誤,利用downloader下載程序至開發(fā)板即可,運(yùn)行效果如下圖所示。
編輯:fqj
-
RGB
+關(guān)注
關(guān)注
4文章
803瀏覽量
59551 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5472瀏覽量
101827 -
中科藍(lán)訊
+關(guān)注
關(guān)注
9文章
57瀏覽量
10126
發(fā)布評(píng)論請(qǐng)先 登錄
【RTT大賽作品連載】AB32VG1評(píng)估板到貨控制彩燈測(cè)試

【RT-Thread創(chuàng)新應(yīng)用設(shè)計(jì)大賽】+中科藍(lán)訊 AB32VG1開箱搭建開發(fā)環(huán)境跑demo
【文章連載】RT-Thread創(chuàng)新應(yīng)用大賽文章匯總
【RT-Thread創(chuàng)新應(yīng)用設(shè)計(jì)大賽】AB32VG1開發(fā)板入手
如何在AB32VG1開發(fā)板OLED顯示使開發(fā)板上電

AB32開發(fā)板測(cè)評(píng):GPIO控制RGB彩燈

AB32VG1 RT-Thread 開發(fā)環(huán)境搭建

評(píng)論