本篇文章通過(guò) RT-Thread Studio 配置 AB32VG1 片上外設(shè) GPIO 的引腳,控制 RGB 彩燈進(jìn)行紅綠藍(lán)三色的變換。
1.模塊介紹開(kāi)發(fā)板上板載一個(gè)三色 RGB 彩燈,電路原理圖如下圖示。
從以上兩電路圖中可知,RGB彩燈陽(yáng)極接3.3V電源,陰極連接電阻分別接到了LED_B、LED_G、LED_R網(wǎng)絡(luò)標(biāo)簽。LED_B、LED_G、LED_R網(wǎng)絡(luò)標(biāo)簽通過(guò)Header短接3-4、5-6、7-8分別連接到PA1、PE1和PE4引腳上。這樣只要控制AB32VG1的PA1、PE1和PE4引腳輸出低電平就可以點(diǎn)亮RGB,輸出高電平就可以熄滅RGB。
2.工程的創(chuàng)建和代碼的修改
如上圖所示,打開(kāi)RT-Thread Studio ,進(jìn)入開(kāi)發(fā)界面,選擇文件--->新建--->RT-Thread項(xiàng)目,進(jìn)入如下圖界面,填入工程名字,工程名字自定義,重點(diǎn)是選擇“基于開(kāi)發(fā)板”這里選擇AB32VG1開(kāi)發(fā)板,其余保留默認(rèn)即可,點(diǎn)擊完成,項(xiàng)目創(chuàng)建成功。
展開(kāi)AB32VG1_RGB_GPIO項(xiàng)目,找到applications文件下的main.c,雙擊打開(kāi)main.c主程序,如下圖所示。
這里我們把代碼拷貝出來(lái),單獨(dú)來(lái)分析。
#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)的引腳寫(xiě)入高低電平。這里向PE1寫(xiě)入低電平,紅色的亮起。
rt_thread_mdelay(500);
//rtthread延時(shí)函數(shù)
rt_pin_write(pin, PIN_HIGH);
///這里向PE1寫(xiě)入低電平,紅色的熄滅。
rt_thread_mdelay(500);
}
}
所以,通過(guò)上面代碼分析,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);
}
}
修改好之后,編譯程序沒(méi)有錯(cuò)誤,利用downloader下載程序至開(kāi)發(fā)板即可,運(yùn)行效果如下圖所示。
編輯:fqj
-
RGB
+關(guān)注
關(guān)注
4文章
799瀏覽量
58573 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5081瀏覽量
97698 -
中科藍(lán)訊
+關(guān)注
關(guān)注
9文章
57瀏覽量
9903
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論