【RTT大賽作品連載】AB32VG1開發板——RGB交替閃爍
1. 實驗目的
讓板載 RGB 燈交替閃爍
2. 開發板硬件平臺
RGB燈硬件電路,可知,使用 RGB 燈組要使用
PE1 —— 紅
PA1 —— 藍
PE4 —— 綠
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 結構體
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");
// 設置引腳為輸出方式
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");
}
//傳入參數 on=1:對應亮,on=0:對應滅
//紅燈驅動
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);
}
}
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. 程序編譯下載
編譯程序,點擊小錘子即可。
下載程序
打開我們下載的Downloader軟件,雙擊Downloader.exe
配置連接串口,千萬不要搞錯串口號哦。
選擇工程目錄下的\Debug\rtthread.dcf,這里我的完整目錄是
D:\RT-ThreadStudio\workspace\ab32vg1_demo\Debug\rtthread.dcf
點擊開始即可下載成功
5. 實驗現象:
download 串口打印 msh 控制臺信息。
板載RGB燈,紅色綠色藍色交替閃爍。
6. 總結
每一個偉大的程序員都要從 led 及 helloworld 開始,哈哈。
編輯:fqj
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6063文章
44925瀏覽量
647072 -
RTT
+關注
關注
0文章
66瀏覽量
17531 -
中科藍訊
+關注
關注
9文章
59瀏覽量
10152
發布評論請先 登錄
相關推薦
熱點推薦
【免費試用】開發板評測大賽開啟!OH 、RISC-V、Rockchip頂級開發板等你試用~
技術人的狂歡,開發者的盛宴!2025年最值得期待的硬核賽事——電子發燒友開發板評測大賽正式啟動!無論你是開源生態的探索者、芯片架構的極客,還是物聯網領域的創新達人,本次大賽三

T527開發板+OpenHarmony評測大賽邀你來戰!0元參與,贏百元禮品
【電子發燒友開發板評測大賽】正式啟動,等你來戰!本次大賽以“評測性能、探索易用性、解鎖創新場景”為核心,旨在通過深度技術分享與實戰演練,推動硬件生態開放共享,加速產品迭代創新,激發行業創造力。

一個不錯的活動:電子發燒友開發板評測大賽
“ ?湊齊了 OpenHarmony,Risc-V,Rocketchip 三大賽道 21 款來自不同廠家的開發板,可免費申請試用。 ” ? 電子發燒友開發板評測大賽正式啟動!無論你是開

2025電子發燒友開發板評測大賽開啟!三大賽道火力全開,頂級開發板等你來戰!
技術人的狂歡,開發者的盛宴!
2025年最值得期待的硬核賽事——電子發燒友開發板評測大賽正式啟動!無論你是開源生態的探索者、芯片架構的極客,還是物聯網領域的創新達人,本次大賽三
發表于 05-15 15:09

免費送30套開發板!米爾-安路飛龍派創意秀限時活動
大賽簡介為鼓勵工程師勇于創新探索的精神,提升實踐動手能力,更深度的體驗安路飛龍派產品,米爾電子發起“米爾基于安路DR1M90開發板創意秀”,提供米爾安路DR1M90

藍橋杯物聯網開發板硬件組成
第一節開發板簡介物聯網設計與開發競賽實訓平臺由藍橋杯大賽技術支持單位北京四梯科技有限公司設計和生產,該產品可用于參加藍橋杯物聯網設計與開發賽道的競賽實訓或院校相關課程的實踐教學環節。

正點原子fpga開發板不同型號
正點原子作為國內領先的FPGA開發板供應商,其產品線覆蓋了從入門級到高端應用的各個領域。這些開發板不僅適用于學術研究,還廣泛應用于工業控制、通信、圖像處理等多個領域。 1. 入門級開發板
【干貨】性價比拉滿!HK32F407VG開發板介紹
開發板簡介開發板是基于航順芯片公司F4系列HK32F407VGT7芯片的一款開發板,Cortex-M4內核,最高主頻168MHz,內置1MKBFlash和256KBSRAM,SDIO、

linux開發板如何編譯curl
在Linux開發板上編譯 curl 庫通常涉及到幾個步驟,包括準備開發環境、下載源代碼、配置編譯選項以及執行編譯和安裝過程。以下是一個基本的指南,幫助你在Linux開發板上編譯 curl 。
機智云ESP8266開發板RGB彩燈控件
用戶帶來了全新的家居體驗。無論是個性化的燈光設置,還是智能化的遠程管理,這款產品都展現了其在智能家居領域的引領地位。機智云esp8266開發板RGB彩燈控件1、將

智能家居之旅(7):HomeAssistant開發板的RGB顏色
怎么上HomeAssistant,然后控制Ai-M61開發板的 RGB 燈的顏色,感覺這個項目用來控制家里的燈條就挺不錯的。 彩燈實體創建 1.彩燈實體資源啟用 彩燈實體在 HomeAssistant

評論