【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
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6037文章
44558瀏覽量
635298 -
RTT
+關注
關注
0文章
65瀏覽量
17130 -
中科藍訊
+關注
關注
9文章
57瀏覽量
9880
發布評論請先 登錄
相關推薦
藍橋杯物聯網開發板硬件組成
第一節開發板簡介物聯網設計與開發競賽實訓平臺由藍橋杯大賽技術支持單位北京四梯科技有限公司設計和生產,該產品可用于參加藍橋杯物聯網設計與開發賽道的競賽實訓或院校相關課程的實踐教學環節。
正點原子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
米爾NXP i.MX 93開發板的Qt開發指南
1.概述Qt是一個跨平臺的圖形應用開發框架,被應用在不同尺寸設備和平臺上,同時提供不同版權版本供用戶選擇。米爾NXPi.MX93開發板(MYD-LMX9X開發板)使用Qt6.5版本進行
玩轉PSoC 6 RTT積木式開發套件,實現毫米波雷達等實用功能
本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家帶來PSoC62withCAPSENSEevaluationkit(下稱PSoC6RTT開發板)和其積木式開發套件的全面介紹。讓我們跟著
fpga開發板是什么?fpga開發板有哪些?
FPGA開發板是一種基于FPGA(現場可編程門陣列)技術的開發平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實現各種數字電路和邏輯功能。FPGA開發板通常包括FPGA芯片、時鐘模塊、電源模塊、輸入輸出接口等組
fpga開發板與linux開發板區別
FPGA開發板與Linux開發板是兩種不同的硬件開發平臺,各自具有不同的特點和應用場景。在以下的文章中,我將詳細介紹FPGA開發板和Linux開發板
DIY個人的Linux開發板教程
作者簡介:大佬已在硬創社開源了近50款開發板,動手能力極強,于去年年底開始接觸學習Linux,并由全志V3s、F1C200S等芯片開始上手DIY個人的Linux開發板。
帶你玩轉AM62x開發板的顯示接口——LVDS的顯示和修改方式
此前小編已為大家介紹過OK6254-C開發板的RGB顯示和修改方式,沒有讀過的小伙伴可以>>點擊這里閱讀,今天將繼續為大家介紹OK6254-C開發板的LVDS顯示和修改方式。話不多
評論