在開始點燈之前,我們需要從“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開發板的資源包
安裝RT-Thread Studio中集成SDK所必要的最新資源庫
工程源碼的編譯當然少不了交叉編譯器,工程采用RISC-V GCC編譯器,勾選該項并安裝
安裝完這些組件后,然后將開發板與PC端連接,新建工程,選擇“基于開發板”
根據自己的需要,使能串口外設接口
開發板上板載一個三色RGB彩燈,控制RGB燈的變化實際上就是控制這三個GPIO口的電平輸出。板上的電路連接原理圖如下:
由上圖可知,引腳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”下載工具。
-
開發板
+關注
關注
25文章
5088瀏覽量
97797 -
RT-Thread
+關注
關注
31文章
1300瀏覽量
40264 -
RISC-V
+關注
關注
45文章
2306瀏覽量
46291 -
中科藍訊
+關注
關注
9文章
57瀏覽量
9906
發布評論請先 登錄
相關推薦
評論