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

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

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

RTT大賽作品:AB32VG1開發(fā)板—RGB交替閃爍

嵌入式開發(fā) ? 來源:AB32VG1開發(fā)筆記 ? 作者:AB32VG1開發(fā)筆記 ? 2021-11-06 18:59 ? 次閱讀

【RTT大賽作品連載】AB32VG1開發(fā)板——RGB交替閃爍

1. 實驗?zāi)康?/strong>

讓板載 RGB 燈交替閃爍

2. 開發(fā)板硬件平臺

poYBAGGGRgCAejjsABX3VGGeJIc209.png

RGB燈硬件電路,可知,使用 RGB 燈組要使用

PE1 —— 紅

PA1 —— 藍

PE4 —— 綠

pYYBAGGGXsmAObtfAABjOi7lL1M212.png

poYBAGGGXteARcgAAABNgTuU8OE787.png

3. 軟件編寫

在 application 目錄下,新建 rgb.c 和 rgb.h

//rgb.c
/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-06     Administrator       the first version
 */
#include "rgb.h"
#include "rtthread.h"
#include "board.h"

struct Led_s
{
    uint8_t LED_R;
    uint8_t LED_B;
    uint8_t LED_G;
};   //  定義一個 RGB 結(jié)構(gòu)體

struct Led_s Led;
rt_thread_t rgb_thread = RT_NULL;

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

    rt_kprintf("rgb init success\n");
}

//傳入參數(shù)  on=1:對應(yīng)亮,on=0:對應(yīng)滅
//紅燈驅(qū)動
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);
    }
}
//藍燈驅(qū)動
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ū)動
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);
    }
}

void rgb_switch(void)
{
    static uint8_t led_num = 0;
    if(led_num == 0)
        RGB_Red(1);
    else if(led_num == 1)
        RGB_Blue(1);
    else if(led_num == 2)
        RGB_Green(1);
    led_num++;
    if(led_num == 3)
        led_num = 0;
}

void rgb_thread_entry(void* p)
{
    RGB_Init();
    while(1)
    {
        rt_thread_mdelay(500);
        rgb_switch();
    }
}

static int Thread_RGB(void)
{
    rgb_thread = rt_thread_create("rgb", rgb_thread_entry, RT_NULL, 512, 10, 10);
    if(rgb_thread == RT_NULL)
    {
        rt_kprintf("Thread_GRB Init ERROR");
        return RT_ERROR;
    }
    rt_thread_startup(rgb_thread);
}

INIT_APP_EXPORT(Thread_RGB);

//rgb.h
/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2021-11-06     Administrator       the first version
 */
#ifndef APPLICATIONS_RGB_H_
#define APPLICATIONS_RGB_H_

#endif /* APPLICATIONS_RGB_H_ */

修改main.c

/*
 * Copyright (c) 2020-2021, Bluetrum Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2020/12/10     greedyhao    The first version
 */

/**
 * Notice!
 * All functions or data that are called during an interrupt need to be in RAM.
 * You can do it the way exception_isr() does.
 */

#include 
#include "board.h"

int main(void)
{
    rt_kprintf("Hello, world\n");

    while (1)
    {
        rt_thread_mdelay(500);
        rt_thread_mdelay(500);
    }
}

4. 程序編譯下載

編譯程序,點擊小錘子即可。

pYYBAGGGRnmADAsxAAKXmT_LCcc372.png

下載程序

打開我們下載的Downloader軟件,雙擊Downloader.exe

配置連接串口,千萬不要搞錯串口號哦。

選擇工程目錄下的\Debug\rtthread.dcf,這里我的完整目錄是

D:\RT-ThreadStudio\workspace\ab32vg1_demo\Debug\rtthread.dcf

點擊開始即可下載成功

poYBAGGGRoeAOoWjAAEzlPzfcAs365.png

5. 實驗現(xiàn)象:

download 串口打印 msh 控制臺信息

板載RGB燈,紅色綠色藍色交替閃爍。

6. 總結(jié)

每一個偉大的程序員都要從 led 及 helloworld 開始,哈哈。

編輯:fqj

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

    關(guān)注

    6023

    文章

    44386

    瀏覽量

    628747
  • RTT
    RTT
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    16992
  • 中科藍訊
    +關(guān)注

    關(guān)注

    9

    文章

    52

    瀏覽量

    9806
收藏 人收藏

    評論

    相關(guān)推薦

    51開發(fā)板芯片資料

    51開發(fā)板芯片資料
    發(fā)表于 09-18 09:29 ?1次下載

    機智云ESP8266開發(fā)板RGB彩燈控件

    用戶帶來了全新的家居體驗。無論是個性化的燈光設(shè)置,還是智能化的遠程管理,這款產(chǎn)品都展現(xiàn)了其在智能家居領(lǐng)域的引領(lǐng)地位。機智云esp8266開發(fā)板RGB彩燈控件1、將
    的頭像 發(fā)表于 08-09 08:10 ?215次閱讀
    機智云ESP8266<b class='flag-5'>開發(fā)板</b><b class='flag-5'>RGB</b>彩燈控件

    智能家居之旅(7):HomeAssistant開發(fā)板RGB顏色

    怎么上HomeAssistant,然后控制Ai-M61開發(fā)板RGB 燈的顏色,感覺這個項目用來控制家里的燈條就挺不錯的。 彩燈實體創(chuàng)建 1.彩燈實體資源啟用 彩燈實體在 HomeAssistant
    的頭像 發(fā)表于 07-03 16:39 ?339次閱讀
    智能家居之旅(7):HomeAssistant<b class='flag-5'>開發(fā)板</b>的<b class='flag-5'>RGB</b>顏色

    玩轉(zhuǎn)PSoC 6 RTT積木式開發(fā)套件,實現(xiàn)毫米波雷達等實用功能

    本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家?guī)鞵SoC62withCAPSENSEevaluationkit(下稱PSoC6RTT開發(fā)板)和其積木式開發(fā)套件的全面介紹。讓我們跟著
    的頭像 發(fā)表于 03-20 08:35 ?724次閱讀
    玩轉(zhuǎn)PSoC 6 <b class='flag-5'>RTT</b>積木式<b class='flag-5'>開發(fā)</b>套件,實現(xiàn)毫米波雷達等實用功能

    fpga開發(fā)板是什么?fpga開發(fā)板有哪些?

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場可編程門陣列)技術(shù)的開發(fā)平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發(fā)表于 03-14 18:20 ?1512次閱讀

    fpga開發(fā)板使用教程

    FPGA開發(fā)板的使用教程主要包括以下幾個關(guān)鍵步驟。
    的頭像 發(fā)表于 03-14 15:50 ?800次閱讀

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺,各自具有不同的特點和應(yīng)用場景。在以下的文章中,我將詳細介紹FPGA開發(fā)板和Linux開發(fā)板
    的頭像 發(fā)表于 02-01 17:09 ?1723次閱讀

    DIY個人的Linux開發(fā)板教程

    作者簡介:大佬已在硬創(chuàng)社開源了近50款開發(fā)板,動手能力極強,于去年年底開始接觸學(xué)習(xí)Linux,并由全志V3s、F1C200S等芯片開始上手DIY個人的Linux開發(fā)板
    的頭像 發(fā)表于 01-07 09:52 ?1505次閱讀
    DIY個人的Linux<b class='flag-5'>開發(fā)板</b>教程

    帶你玩轉(zhuǎn)AM62x開發(fā)板的顯示接口——LVDS的顯示和修改方式

    此前小編已為大家介紹過OK6254-C開發(fā)板RGB顯示和修改方式,沒有讀過的小伙伴可以>>點擊這里閱讀,今天將繼續(xù)為大家介紹OK6254-C開發(fā)板的LVDS顯示和修改方式。話不多
    的頭像 發(fā)表于 01-05 08:02 ?1033次閱讀
    帶你玩轉(zhuǎn)AM62x<b class='flag-5'>開發(fā)板</b>的顯示接口——LVDS的顯示和修改方式

    EGO1開發(fā)板的硬件規(guī)格、軟件支持、應(yīng)用場景及優(yōu)勢

    EGO1開發(fā)板是一款功能強大、性價比高的開發(fā)板,廣泛應(yīng)用于各種嵌入式系統(tǒng)的設(shè)計與開發(fā)。本文將從硬件規(guī)格、軟件支持、應(yīng)用場景及優(yōu)勢等方面詳細介紹EGO
    的頭像 發(fā)表于 12-21 15:49 ?2077次閱讀

    【ELF 1開發(fā)板試用】+ RGB LED及按鍵的控制

    1開發(fā)板上,自然也不會少了它,其在開發(fā)板上的位置如圖1所示,共有3個,其顏色分別為紅、綠、黃3個色彩。 圖1LED燈 3個LED燈的電路
    發(fā)表于 11-21 11:11

    GSM開發(fā)板V1調(diào)試手冊

    電子發(fā)燒友網(wǎng)站提供《GSM開發(fā)板V1調(diào)試手冊.pdf》資料免費下載
    發(fā)表于 11-17 14:50 ?0次下載
    GSM<b class='flag-5'>開發(fā)板</b>V<b class='flag-5'>1</b>調(diào)試手冊

    RA6M3 HMI Board之硬件SPI實踐

    第一次接觸RTT是在2022年的參加的系統(tǒng)集成與芯片設(shè)計大賽,當(dāng)時報名了RTT賽道從此就打開了我使用RTT的大門,RTT是一個非常好的實時操
    的頭像 發(fā)表于 10-30 17:49 ?939次閱讀
    RA6M3 HMI Board之硬件SPI實踐

    國民技術(shù)N32系列開發(fā)板資料合集

    本專題為國民技術(shù)N32系列開源移植挑戰(zhàn)賽配套資料,包含了N32G45x開發(fā)板、N32G43x開發(fā)板和N32G430開發(fā)板等7款開發(fā)板的詳細資料
    發(fā)表于 10-08 14:21
    國民技術(shù)N32系列<b class='flag-5'>開發(fā)板</b>資料合集

    平頭哥Lichee D1 DocK Pro開發(fā)板上手評測

    平頭哥Lichee D1 DocK Pro開發(fā)板上手評測
    的頭像 發(fā)表于 09-28 16:15 ?813次閱讀
    平頭哥Lichee D<b class='flag-5'>1</b> DocK Pro<b class='flag-5'>開發(fā)板</b>上手評測