0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【RTT大賽作品連載】AB32VG1開(kāi)發(fā)板之點(diǎn)燈篇

RT-Thread創(chuàng)新應(yīng)用 ? 來(lái)源:RT-Thread創(chuàng)新應(yīng)用 ? 作者:RT-Thread創(chuàng)新應(yīng)用 ? 2022-01-04 09:16 ? 次閱讀

在開(kāi)始點(diǎn)燈之前,我們需要從“https://www.rt-thread.org/page/studio.html”下載RT-Thread Studio開(kāi)發(fā)工具,從“https://gitee.com/bluetrum/Downloader/blob/main/Downloader_v1.9.7.zip”下載燒錄固件的工具,然后將RT-Thread Studio快速安裝完畢后,安裝針對(duì)AB32VG1開(kāi)發(fā)板的資源包

poYBAGHRUNCAQXlwAAHwFpP3YfQ785.png

安裝RT-Thread Studio中集成SDK所必要的最新資源庫(kù)

poYBAGHRUhKAHPnGAAH2yklBXJ0918.png

工程源碼的編譯當(dāng)然少不了交叉編譯器,工程采用RISC-V GCC編譯器,勾選該項(xiàng)并安裝

poYBAGHRUriALMjUAAH12JwcBj8882.png

安裝完這些組件后,然后將開(kāi)發(fā)板與PC端連接,新建工程,選擇“基于開(kāi)發(fā)板”

pYYBAGHRU9uARZg7AANEgU9_fho981.png

根據(jù)自己的需要,使能串口外設(shè)接口

poYBAGHRVHmACg8_AAFVzg-7dKU015.png

開(kāi)發(fā)板上板載一個(gè)三色RGB彩燈,控制RGB燈的變化實(shí)際上就是控制這三個(gè)GPIO口的電平輸出。板上的電路連接原理圖如下:

pYYBAGHRWfWAGutQAACWHS0opwU043.png

由上圖可知,引腳PA1對(duì)應(yīng)藍(lán)燈,引腳PE1對(duì)應(yīng)紅燈,引腳PE4對(duì)應(yīng)綠燈,RGB為共陽(yáng)極,當(dāng)引腳拉低時(shí),對(duì)應(yīng)的led點(diǎn)亮,在“applications”文件夾下新建立一個(gè)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");
    //設(shè)置引腳為輸出方式
    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);
}

//紅燈驅(qū)動(dòng)
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);
    }
}
//藍(lán)燈驅(qū)動(dòng)
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);
    }
}
//綠燈驅(qū)動(dòng)
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);
    }
}

主函數(shù)的源文件中包含“rgb.h”頭文件,然后編寫(xiě)rgb彩燈運(yùn)行線程,三種顏色依次切換,中間延時(shí)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);
    }
}

接著創(chuàng)建線程啟動(dòng)函數(shù),用于啟動(dòng)上一步編寫(xiě)的線程主體

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

最后記得將線程初始化添加入系統(tǒng)初始化中:INIT_APP_EXPORT(Thread_RGB);

然后編譯,打開(kāi)“Downloader.exe”下載軟件,選擇剛才編譯生成的.dcf文件,選擇對(duì)應(yīng)的串口號(hào)(如果電腦未識(shí)別到串口,需要安裝對(duì)應(yīng)的USB轉(zhuǎn)串口驅(qū)動(dòng)),點(diǎn)擊“開(kāi)始”,按一下板子上復(fù)位按鍵,即可完成程序的燒錄。

開(kāi)發(fā)板燒錄完成后,RGB燈點(diǎn)亮的效果如下圖所示,此次分享告一段落,使用RT-Thread Studio能夠更快的構(gòu)建工程框架,而且編輯代碼時(shí)會(huì)自動(dòng)彈出備選的參考函數(shù),實(shí)現(xiàn)的方式引入線程的概念,如果能夠使用RT-Thread Studio內(nèi)部集成的下載接口下載程序就更好了,這里必須采用官方提供的“Downloader.exe”下載工具。

poYBAGHRY0iAKJXlAJwGvRj5km0022.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5087

    瀏覽量

    97792
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1299

    瀏覽量

    40263
  • RISC-V
    +關(guān)注

    關(guān)注

    45

    文章

    2306

    瀏覽量

    46291
  • 中科藍(lán)訊
    +關(guān)注

    關(guān)注

    9

    文章

    57

    瀏覽量

    9906
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RTT大賽作品連載AB32VG1開(kāi)箱、搭建環(huán)境、演示、點(diǎn)燈

    AB32VG1】開(kāi)箱、搭建環(huán)境、演示、點(diǎn)燈,為下面做好準(zhǔn)備。
    的頭像 發(fā)表于 10-25 16:47 ?5059次閱讀
    【<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>開(kāi)箱、搭建環(huán)境、演示、<b class='flag-5'>點(diǎn)燈</b>

    RISC-V架構(gòu)開(kāi)發(fā)板AB32VG1測(cè)評(píng)GPIO點(diǎn)燈

    一、介紹 AB32VG1 開(kāi)發(fā)板是以中科藍(lán)訊 (Bluetrum) 公司推出的基于RISC-V 架構(gòu)的高配置芯片 AB32VG1 為核心所組成的。 · CPU: AB32VG
    的頭像 發(fā)表于 10-28 11:48 ?8500次閱讀
    RISC-V架構(gòu)<b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>AB32VG1</b>測(cè)評(píng)<b class='flag-5'>之</b>GPIO<b class='flag-5'>點(diǎn)燈</b>

    RTT大賽作品連載AB32VG1上手

    AB32VG1上手操作,修改例程運(yùn)行中的問(wèn)題,成功點(diǎn)亮RGB。
    的頭像 發(fā)表于 10-28 18:31 ?7728次閱讀
    【<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>上手

    RTT大賽作品連載AB32VG1評(píng)估到貨點(diǎn)燈測(cè)試

    AB32VG1評(píng)估到貨點(diǎn)燈測(cè)試.
    的頭像 發(fā)表于 11-04 08:55 ?7755次閱讀
    【<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>評(píng)估<b class='flag-5'>板</b>到貨<b class='flag-5'>點(diǎn)燈</b>測(cè)試

    RTT大賽作品AB32VG1開(kāi)發(fā)板OLED顯示實(shí)驗(yàn)

    最近在玩AB32VG1,在做OLED顯示實(shí)驗(yàn)時(shí),很多關(guān)于AB32VG1驅(qū)動(dòng)OLED的文章,很多都是官方例程操作,在msh窗口中輸入測(cè)試指令,測(cè)試驅(qū)動(dòng)是否正常。很少有關(guān)于在main函數(shù)中直接實(shí)現(xiàn)的,本編文章直接在MAIN函數(shù)實(shí)現(xiàn)OLED顯示,上電自動(dòng)執(zhí)行。
    的頭像 發(fā)表于 11-05 16:03 ?6272次閱讀
    <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'>開(kāi)發(fā)板</b>OLED顯示實(shí)驗(yàn)

    RTT大賽作品AB32VG1開(kāi)發(fā)板—按鍵掃描

    ab32vg1開(kāi)發(fā)板按鍵實(shí)驗(yàn)
    的頭像 發(fā)表于 11-15 09:54 ?4255次閱讀
    <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'>開(kāi)發(fā)板</b>—按鍵掃描

    RTT大賽作品連載AB32VG1評(píng)估到貨控制彩燈測(cè)試

    RTT大賽作品連載AB32VG1評(píng)估到貨控制彩燈測(cè)試
    的頭像 發(fā)表于 11-07 19:39 ?5226次閱讀
    【<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>評(píng)估<b class='flag-5'>板</b>到貨控制彩燈測(cè)試

    RTT大賽作品連載AB32VG1評(píng)估 音樂(lè)播放器

    RTT大賽作品連載AB32VG1評(píng)估 音樂(lè)播放器
    的頭像 發(fā)表于 11-12 21:11 ?6261次閱讀
    【<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>評(píng)估<b class='flag-5'>板</b> 音樂(lè)播放器

    RTT大賽作品連載】中科藍(lán)訊AB32VG1開(kāi)發(fā)板開(kāi)箱

    介紹電路原理圖分析接口說(shuō)明,AB32VG1開(kāi)發(fā)板是以中科藍(lán)訊(Bluetrum)公司推出的基于RISC-V架構(gòu)的高配置芯片AB5301A為核心所組成的?!?b class='flag-5'>RTT
    的頭像 發(fā)表于 11-13 10:01 ?1.1w次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】中科藍(lán)訊<b class='flag-5'>AB32VG1</b><b class='flag-5'>開(kāi)發(fā)板</b>開(kāi)箱<b class='flag-5'>篇</b>

    RTT大賽作品連載AB32VG1開(kāi)發(fā)環(huán)境搭建

    基于RT-Thread的AB32VG1開(kāi)發(fā)環(huán)境搭建.
    的頭像 發(fā)表于 11-17 08:48 ?9437次閱讀
    【<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'>開(kāi)發(fā)</b>環(huán)境搭建

    RTT大賽作品連載AB32VG1評(píng)估 炫酷音樂(lè)播放器

    AB32VG1評(píng)估
    的頭像 發(fā)表于 11-26 08:43 ?7711次閱讀
    【<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>評(píng)估<b class='flag-5'>板</b> 炫酷音樂(lè)播放器

    RTT大賽作品連載AB32VG1開(kāi)發(fā)板開(kāi)箱

    中科藍(lán)訊AB32VG1開(kāi)發(fā)板的開(kāi)箱之作,此開(kāi)發(fā)板的硬件資源初略的介紹。
    的頭像 發(fā)表于 01-04 09:19 ?4570次閱讀
    【<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'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>開(kāi)箱<b class='flag-5'>篇</b>

    【文章連載】RT-Thread創(chuàng)新應(yīng)用大賽文章匯總

    連載】中科藍(lán)訊AB32VG1開(kāi)發(fā)板開(kāi)箱專(zhuān)欄作者:煲仔鹵煮的煉鋼【RTT大賽
    發(fā)表于 10-11 15:13

    RTT大賽作品連載】中科藍(lán)訊AB32VG1開(kāi)發(fā)板開(kāi)箱

    收到開(kāi)發(fā)板先上靚照中科藍(lán)訊AB32VG1開(kāi)發(fā)板開(kāi)箱AB32VG1開(kāi)發(fā)板一塊TypeCo數(shù)據(jù)線一條開(kāi)發(fā)板
    發(fā)表于 11-24 08:00

    RTT大賽作品連載】基于AB32VG1 sdk BLE例程

    RT-Thread基本中科藍(lán)訊AB32VG1 BLE開(kāi)發(fā)快捷方便.
    的頭像 發(fā)表于 12-06 09:07 ?5015次閱讀
    【<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> sdk BLE例程