91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

跟AB32VG1開(kāi)發(fā)學(xué)習(xí)RGB交替閃爍

RT_THREAD ? 來(lái)源:RT_THREAD ? 作者:RT_THREAD ? 2021-11-21 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

//傳入?yún)?shù) on=1:對(duì)應(yīng)亮,on=0:對(duì)應(yīng)滅
//紅燈驅(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);
}
}

下面要做的是使得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();
}
}
//這個(gè)函數(shù)不太明白是做什么的,應(yīng)該是線程控制函數(shù),不知道哪里有相應(yīng)的教程可以看到
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);
}


然后看到該同學(xué)還設(shè)置了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_ */

不太明白為什么要做這個(gè),是為了以后擴(kuò)展用?

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

看完了這個(gè)學(xué)習(xí),感覺(jué)疑惑還是很多,
有關(guān)于系統(tǒng)本身的,也有關(guān)于這位同學(xué)的編寫代碼內(nèi)容的??墒仟?dú)學(xué)而無(wú)友,則孤陋而寡聞。
多向各位大佬學(xué)習(xí)。
爭(zhēng)取能夠看明白。

還有這個(gè)編輯界面不知道為什么無(wú)法直接在word中直接粘貼復(fù)制。

難道是需要排版才行?

ymf

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 電路
    +關(guān)注

    關(guān)注

    173

    文章

    6077

    瀏覽量

    178443
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7402

    瀏覽量

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

    關(guān)注

    10

    文章

    66

    瀏覽量

    10672
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式單片機(jī)開(kāi)發(fā)學(xué)習(xí)路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學(xué)習(xí)嵌入式單片機(jī)開(kāi)發(fā)不僅能提升個(gè)人技能,還能開(kāi)拓職業(yè)發(fā)展路徑。本文將為你提供一條詳細(xì)的嵌入式單片機(jī)開(kāi)發(fā)
    發(fā)表于 02-09 15:42

    《機(jī)智云Gokit3開(kāi)發(fā)篇》4 RGB燈的介紹與驅(qū)動(dòng)移植(HAL庫(kù))

    在物聯(lián)網(wǎng)開(kāi)發(fā)與STM32嵌入式應(yīng)用實(shí)踐中,RGB燈是實(shí)現(xiàn)可視化交互、狀態(tài)指示的常用外設(shè),而機(jī)智云Gokit3開(kāi)發(fā)板作為物聯(lián)網(wǎng)開(kāi)發(fā)的經(jīng)典硬件平臺(tái),其板載的
    的頭像 發(fā)表于 01-28 19:11 ?5078次閱讀
    《機(jī)智云Gokit3<b class='flag-5'>開(kāi)發(fā)</b>篇》4 <b class='flag-5'>RGB</b>燈的介紹與驅(qū)動(dòng)移植(HAL庫(kù))

    經(jīng)典 PLC 程序(5) - 閃爍

    閃爍燈程序的核心功能是:通過(guò)PLC的定時(shí)器(Timer)控制一個(gè)或多個(gè)輸出點(diǎn)(如指示燈、蜂鳴器等)按照預(yù)設(shè)的時(shí)間間隔交替地接通和斷開(kāi),從而產(chǎn)生“亮-滅-亮-滅”的周期性變化效果。控制邏輯與硬件接線
    的頭像 發(fā)表于 01-13 11:42 ?253次閱讀
    經(jīng)典 PLC 程序(5) - <b class='flag-5'>閃爍</b>燈

    TUSB5461-Q1:汽車類DisplayPort交替模式轉(zhuǎn)接驅(qū)動(dòng)開(kāi)關(guān)的卓越之選

    TUSB5461-Q1:汽車類DisplayPort交替模式轉(zhuǎn)接驅(qū)動(dòng)開(kāi)關(guān)的卓越之選 在汽車電子領(lǐng)域,數(shù)據(jù)傳輸?shù)母咝院头€(wěn)定性至關(guān)重要。TUSB5461-Q1作為一款基于USB Type-C的VESA
    的頭像 發(fā)表于 12-15 15:40 ?396次閱讀

    光纜怎么分ab

    、基站等)。 B端:光纜的終止端,通常連接接收設(shè)備(如終端盒、用戶端等)。 作用: 確保光纖對(duì)(如TX-RX)正確配對(duì),避免信號(hào)反射或丟失。 在環(huán)形網(wǎng)絡(luò)或雙纖鏈路中,AB端區(qū)分可防止光纖交叉連接導(dǎo)致的故障。 二、AB端的區(qū)分方法 1
    的頭像 發(fā)表于 09-28 09:38 ?1998次閱讀

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現(xiàn)在的工程是裸板工程,芯片是STM32H723VG的芯片,在構(gòu)建工程時(shí)中找不到對(duì)應(yīng)的芯片
    發(fā)表于 09-22 06:57

    【創(chuàng)龍TLT113-MiniEVM開(kāi)發(fā)板試用體驗(yàn)】T113開(kāi)發(fā)板LED閃爍控制終極教程

    ;T113 LED控制菜單\" echo \"1. 心跳燈閃爍\" echo \"2. 用戶LED0閃爍\" echo \"3. 雙LED交替
    發(fā)表于 08-06 13:56

    請(qǐng)問(wèn)VG710都有那些外置接口?

    VG710都有那些外置接口?
    發(fā)表于 08-06 06:50

    【沁恒CH585開(kāi)發(fā)板免費(fèi)試用體驗(yàn)】+點(diǎn)亮RGB彩燈

    掌握GPIO口的使用是步入硬件學(xué)習(xí)的第一步,為此將它的學(xué)習(xí)同點(diǎn)亮RGB彩燈相結(jié)合可起到學(xué)習(xí)和興趣相結(jié)合的功效。 RGB彩燈模塊是采用共陰極連
    發(fā)表于 07-03 22:17

    【BPI-CanMV-K230D-Zero開(kāi)發(fā)板體驗(yàn)】+燈效控制與Python編程

    ,在學(xué)習(xí)Python編程的基礎(chǔ)上通過(guò)GPIO來(lái)實(shí)現(xiàn)LED燈的控制。 在開(kāi)發(fā)板上,僅有的2個(gè)可供GPIO控制的器件是RGB_LED和按鍵,其中RGB_LED的電路如圖
    發(fā)表于 06-27 17:33

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現(xiàn)在的工程是裸板工程,芯片是STM32H723VG的芯片,在構(gòu)建工程時(shí)中找不到對(duì)應(yīng)的芯片
    發(fā)表于 06-11 08:28

    X1G0054910008,VG7050EFN差分晶振,EPSON尋呼機(jī)6G晶振

    產(chǎn)品簡(jiǎn)介X1G0054910008,VG7050EFN差分晶振,EPSON尋呼機(jī)6G晶振,日本進(jìn)口晶振,EPSON愛(ài)普生株式會(huì)社,型號(hào):VG7050EFN,編碼為:X1G0054910
    發(fā)表于 05-20 14:13 ?0次下載

    愛(ài)普生VG3225EFN壓控晶振5G基站低噪聲的解決方案

    不僅為基站提供了穩(wěn)定的時(shí)鐘基準(zhǔn),更從源頭降低了系統(tǒng)噪聲,助力構(gòu)建更高效、更可靠的5G通信基礎(chǔ)設(shè)施。VG3225EFN壓控晶振技術(shù)優(yōu)勢(shì):1.高頻基模晶體與低相位噪聲設(shè)
    的頭像 發(fā)表于 03-25 17:29 ?941次閱讀
    愛(ài)普生<b class='flag-5'>VG</b>3225EFN壓控晶振5G基站低噪聲的解決方案

    愛(ài)普生壓控晶振 VG7050CDN(X1G004861)在 5G 通信基站中的應(yīng)用

    7050CDN(X1G004861)是愛(ài)普生推出的一款電壓控制晶體振蕩器,振憑借出色的頻率穩(wěn)定性、低相位噪聲、快速頻率響應(yīng)以及寬溫度適應(yīng)性等特點(diǎn),成為5G通信基站的理想選擇。 VG7050CDN 晶振如何滿足 5G?基站的需求: VG
    的頭像 發(fā)表于 03-25 16:03 ?883次閱讀

    DS1265AB adi

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)DS1265AB相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1265AB的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1265AB真值表,DS1265AB
    發(fā)表于 03-10 18:32
    DS1265<b class='flag-5'>AB</b> adi