在開始點燈之前,我們需要從“https://www.rt-thread.org/page/studio.html”下載RT-Thread Studio開發工具,從“https://gitee.com/bluetrum/Downloader/blob/main/Downloader_v1.9.7.zip”下載燒錄固件的工具,然后將RT-Thread Studio快速安裝完畢后,安裝針對AB32VG1開發板的資源包
![poYBAGHRUNCAQXlwAAHwFpP3YfQ785.png](http://file.elecfans.com/web2/M00/2B/5B/poYBAGHRUNCAQXlwAAHwFpP3YfQ785.png)
安裝RT-Thread Studio中集成SDK所必要的最新資源庫
![poYBAGHRUhKAHPnGAAH2yklBXJ0918.png](http://file.elecfans.com/web2/M00/2B/5B/poYBAGHRUhKAHPnGAAH2yklBXJ0918.png)
工程源碼的編譯當然少不了交叉編譯器,工程采用RISC-V GCC編譯器,勾選該項并安裝
![poYBAGHRUriALMjUAAH12JwcBj8882.png](http://file.elecfans.com/web2/M00/2B/5B/poYBAGHRUriALMjUAAH12JwcBj8882.png)
安裝完這些組件后,然后將開發板與PC端連接,新建工程,選擇“基于開發板”
![pYYBAGHRU9uARZg7AANEgU9_fho981.png](http://file.elecfans.com/web2/M00/2B/61/pYYBAGHRU9uARZg7AANEgU9_fho981.png)
根據自己的需要,使能串口外設接口
![poYBAGHRVHmACg8_AAFVzg-7dKU015.png](http://file.elecfans.com/web2/M00/2B/5B/poYBAGHRVHmACg8_AAFVzg-7dKU015.png)
開發板上板載一個三色RGB彩燈,控制RGB燈的變化實際上就是控制這三個GPIO口的電平輸出。板上的電路連接原理圖如下:
![pYYBAGHRWfWAGutQAACWHS0opwU043.png](http://file.elecfans.com/web2/M00/2B/61/pYYBAGHRWfWAGutQAACWHS0opwU043.png)
由上圖可知,引腳PA1對應藍燈,引腳PE1對應紅燈,引腳PE4對應綠燈,RGB為共陽極,當引腳拉低時,對應的led點亮,在“applications”文件夾下新建立一個rgb.c和rgb.h文件,源代碼編輯如下:
#ifndef APPLICATIONS_RGB_C_
#define APPLICATIONS_RGB_C_
#endif /* APPLICATIONS_RGB_C_ */
#include "rgb.h"
#include
#include "board.h"
struct Led_s
{
uint8_t LED_R;
uint8_t LED_B;
uint8_t LED_G;
};
struct Led_s 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.1");
//設置引腳為輸出方式
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);
}
//紅燈驅動
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);
}
}
主函數的源文件中包含“rgb.h”頭文件,然后編寫rgb彩燈運行線程,三種顏色依次切換,中間延時1秒鐘。
static void rgb_thread_entry(void* p)
{
RGB_Init();
while(1)
{
rt_thread_mdelay(1000);
RGB_Blue(1);
rt_thread_mdelay(1000);
RGB_Green(1);
rt_thread_mdelay(1000);
RGB_Red(1);
}
}
接著創建線程啟動函數,用于啟動上一步編寫的線程主體
static int Thread_RGB(void)
{
rt_thread_t thread = RT_NULL;
thread = rt_thread_create("rgb", rgb_thread_entry, RT_NULL, 512, 10, 10);
if(thread == RT_NULL)
{
rt_kprintf("Thread_GRB Init ERROR");
return RT_ERROR;
}
rt_thread_startup(thread);
}
最后記得將線程初始化添加入系統初始化中:INIT_APP_EXPORT(Thread_RGB);
然后編譯,打開“Downloader.exe”下載軟件,選擇剛才編譯生成的.dcf文件,選擇對應的串口號(如果電腦未識別到串口,需要安裝對應的USB轉串口驅動),點擊“開始”,按一下板子上復位按鍵,即可完成程序的燒錄。
開發板燒錄完成后,RGB燈點亮的效果如下圖所示,此次分享告一段落,使用RT-Thread Studio能夠更快的構建工程框架,而且編輯代碼時會自動彈出備選的參考函數,實現的方式引入線程的概念,如果能夠使用RT-Thread Studio內部集成的下載接口下載程序就更好了,這里必須采用官方提供的“Downloader.exe”下載工具。
![poYBAGHRY0iAKJXlAJwGvRj5km0022.png](http://file.elecfans.com/web2/M00/2B/5C/poYBAGHRY0iAKJXlAJwGvRj5km0022.png)
-
開發板
+關注
關注
25文章
5121瀏覽量
98218 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40391 -
RISC-V
+關注
關注
45文章
2324瀏覽量
46605 -
中科藍訊
+關注
關注
9文章
57瀏覽量
9933
發布評論請先 登錄
相關推薦
RISC-V架構開發板AB32VG1測評之GPIO點燈
![RISC-V架構<b class='flag-5'>開發板</b><b class='flag-5'>AB32VG1</b>測評<b class='flag-5'>之</b>GPIO<b class='flag-5'>點燈</b>](https://file.elecfans.com//web2/M00/1A/36/pYYBAGF6CWOAGB2VAAplT4lxPAM885.png)
RTT大賽作品:AB32VG1開發板OLED顯示實驗
![<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b>:<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b>OLED顯示實驗](https://file.elecfans.com/web2/M00/1B/88/pYYBAGGE5W6ANiFfAADG95L24Nc028.png)
【RTT大賽作品連載】中科藍訊AB32VG1開發板開箱篇
![【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】中科藍訊<b class='flag-5'>AB32VG1</b><b class='flag-5'>開發板</b>開箱<b class='flag-5'>篇</b>](https://file.elecfans.com//web2/M00/1C/FD/pYYBAGGOg5-AaQa2AA-J9MBxhQg611.png)
評論