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

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

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

跟AB32VG1開發(fā)學習RGB交替閃爍

RT_THREAD ? 來源:RT_THREAD ? 作者:RT_THREAD ? 2021-11-21 09:14 ? 次閱讀

今天開始學習RGB交替閃爍。
這是一個最基本的io口控制例程??吹紸B32VG1編寫的內(nèi)容,感覺有些地方不懂,后面再說?,F(xiàn)在先記錄整個學習過程。
1.查看硬件電路結(jié)構(gòu)

pYYBAGGZfPiAZLetAAAkGuecaVg341.pngled接口電路pYYBAGGZfRaAddn2AABl0X6T5Zo444.pngled接口電路2

這里采用了header4×2來轉(zhuǎn)接一下。便于胸口復用。
2.軟件設計與編寫
可以看到LED是低電平使能,在相應的io口輪次輸出0,使得LED點亮。
獲得LED
設置pin模式,
輪次輸出相應電平,點亮或熄滅相應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);

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

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

下面要做的是使得led能夠循環(huán)工作。
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;
}
操作系統(tǒng)入口函數(shù)
void rgb_thread_entry(void* p)
{
RGB_Init();
while(1)
{
rt_thread_mdelay(500);
rgb_switch();
}
}
//這個函數(shù)不太明白是做什么的,應該是線程控制函數(shù),不知道哪里有相應的教程可以看到
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);
}


然后看到該同學還設置了key.h函數(shù)。
//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_ */

不太明白為什么要做這個,是為了以后擴展用?

修改主函數(shù)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);
}
}
該同學把原來的按鍵控制刪掉后,給了兩個mdelay();不明白為什么要這樣寫。
3.執(zhí)行downloader
實現(xiàn)功能。

看完了這個學習,感覺疑惑還是很多,
有關于系統(tǒng)本身的,也有關于這位同學的編寫代碼內(nèi)容的。可是獨學而無友,則孤陋而寡聞。
多向各位大佬學習。
爭取能夠看明白。

還有這個編輯界面不知道為什么無法直接在word中直接粘貼復制。

難道是需要排版才行?

ymf

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

    關注

    172

    文章

    5945

    瀏覽量

    172583
  • 操作系統(tǒng)

    關注

    37

    文章

    6859

    瀏覽量

    123496
  • 中科藍訊
    +關注

    關注

    9

    文章

    57

    瀏覽量

    9906
收藏 人收藏

    評論

    相關推薦

    【干貨】性價比拉滿!HK32F407VG開發(fā)板介紹

    開發(fā)板簡介開發(fā)板是基于航順芯片公司F4系列HK32F407VGT7芯片的一款開發(fā)板,Cortex-M4內(nèi)核,最高主頻168MHz,內(nèi)置1MKBFlash和256KBSRAM,SDIO、
    的頭像 發(fā)表于 11-08 13:27 ?262次閱讀
    【干貨】性價比拉滿!HK32F407<b class='flag-5'>VG</b><b class='flag-5'>開發(fā)</b>板介紹

    負載管的閃爍噪聲和熱噪聲的區(qū)別

    負載管的閃爍噪聲和熱噪聲是兩種不同的噪聲類型,它們在電子設備中的表現(xiàn)和影響各有特點。 閃爍噪聲(1/f噪聲) 定義 : 閃爍噪聲,也稱為1/
    的頭像 發(fā)表于 10-10 11:19 ?594次閱讀

    TSB41LV01至TSB41AB1過渡文件

    電子發(fā)燒友網(wǎng)站提供《TSB41LV01至TSB41AB1過渡文件.pdf》資料免費下載
    發(fā)表于 09-29 09:14 ?0次下載
    TSB41LV01至TSB41<b class='flag-5'>AB1</b>過渡文件

    VCA824的Vg怎么控制?

    求大神告知一下這個Vg應該如何控制,來實現(xiàn)增益調(diào)整呀
    發(fā)表于 09-05 08:27

    【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】軟件驅(qū)動TFT屏幕

    接上篇:【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】開發(fā)環(huán)境搭建及流水燈(附踩坑記錄) - 瑞薩單片機論壇 - 電子技術論壇 - 廣受歡迎的專業(yè)電子論壇! (elecfans.com
    發(fā)表于 08-26 21:45

    TINA-TI仿真,為什么VF1VG1的波形不一樣?

    為什么VF1VG1的波形不一樣? 還有就是如果我把波形的下降沿改為100N,VF1的波形就會被削頂,這個有是什么原因?
    發(fā)表于 08-19 07:15

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

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

    為什么VCA821最大輸出電壓會隨Vg的減小而減???

    這是VCA821模塊 當Vg = 2V時,其最大的輸出電壓為7.8V左右, 當Vg = 0.7V時,其最大的輸出電壓卻變?yōu)?.9V左右,隨著Vg的減小而減小,且Vg較小時會含有
    發(fā)表于 08-02 06:37

    EPSON可編程壓控振蕩器VG7050ECN,X1G0045611005,6G藍牙晶振

    EPSON可編程壓控振蕩器VG7050ECN,X1G0045611005,6G藍牙晶振,日本進口晶振,EPSON愛普生晶振,型號VG7050ECN,編碼為:X1G004561100
    發(fā)表于 07-04 14:23 ?0次下載

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

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

    在ESP32-S3-DevKitM-1學習使用按鍵中斷,無法工作是哪里的問題?

    硬件:ESP32-S3-DevKitM-1 IDE:Arduino IDE 2.0.3 想借助板子上的boot按鈕學習使用按鍵外部中斷控制RGB亮滅,代碼附下,問題表現(xiàn)為開發(fā)板重啟,
    發(fā)表于 07-01 07:32

    ESP32-C3-DevKitM-1跑示例程序Blink,RGB燈不閃的原因?

    新手學習,買了兩塊ESP32-C3-DevKitM-1,到手后插入USB供電后,兩塊開發(fā)板的RGB燈藍色常亮。然后燒錄示例example
    發(fā)表于 06-21 06:01

    如何將LED連接到Arduino板并使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板并使其閃爍。
    的頭像 發(fā)表于 02-11 10:53 ?2290次閱讀
    如何將LED連接到Arduino板并使其<b class='flag-5'>閃爍</b>

    如何使用Arduino控制RGB LED

    在本指南中,您將學習如何使用Arduino控制RGB LED。RGB(紅-綠-藍)LED可以通過混合不同強度的紅、綠、藍光來產(chǎn)生多種顏色。您將學習創(chuàng)建一個基本Arduino
    的頭像 發(fā)表于 02-11 10:28 ?5079次閱讀
    如何使用Arduino控制<b class='flag-5'>RGB</b> LED

    學習筆記分享|使用C庫函數(shù)控制ELF 1開發(fā)板的LED

    (ELF1/ELF1S開發(fā)板及顯示屏)在嵌入式Linux系統(tǒng)開發(fā)中,通過編程控制硬件資源是至關重要的技能之一,今天各位小伙伴分享一篇專注于
    的頭像 發(fā)表于 01-19 11:12 ?599次閱讀
    <b class='flag-5'>學習</b>筆記分享|使用C庫函數(shù)控制ELF <b class='flag-5'>1</b><b class='flag-5'>開發(fā)</b>板的LED