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

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

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

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

【RTT大賽作品連載】AB32VG1評估板到貨控制彩燈測試

磐石90 ? 2021-11-07 19:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上次發(fā)布了一篇文章(【RTT大賽作品連載】AB32VG1評估板到貨點燈測試-電子發(fā)燒友網(wǎng) (elecfans.com)),解決很多愛好者從在RT-ThreadStudio新建項目到對應開發(fā)配置及下載等各部分環(huán)節(jié)的問題!得到了很多愛好者的認可!

poYBAGGHrWyASMyOAAYobxoiuxI615.png

哈哈,先曬點贊的!

pYYBAGGHrb-ACM6mAAX42sJaxqw946.png

重要的是幫好多愛好者解決了實際問題!

接下來看看在如何AB32VG1評估板控制彩燈!

在RT-ThreadStudio新建項目到對應開發(fā)配置及下載及驗證測試!??!

還是詳細點!?。∮媒貓D-》

新建項目!

poYBAGGHrseAOHNcAAFyO6pqkpc957.png


poYBAGGHr8KAILxwAAFBOz6cLlg570.png

點完成,新建就好了!

接下來是這次會用的軟件包設置!??!

poYBAGGHsL2AUAC8AAHa1S9PV8Y803.png

設置好后點關閉,會提示保存設置選項,點保存即可!

接下來會用到這幾IO!如圖

pYYBAGGHsdWAOYclAA9a6ZVbpp4963.png

軟件代碼內(nèi)容暫時直接寫在main函數(shù)文件里!??!

如圖

具體內(nèi)容如下:

#include
#include "board.h"
#include
#define BUTTON_PIN_0 rt_pin_get("PF.0")//control timeDelay
#define BUTTON_PIN_1 rt_pin_get("PF.1")//control colorLed mode
uint32_t delayTime = 1;
uint32_t state = 0;
uint32_t cnt_0 = 1;
static struct button btn_0;
static struct button btn_1;

static uint8_t button_read_pin_0(void)
{
return rt_pin_read(BUTTON_PIN_0);
}
static uint8_t button_read_pin_1(void)
{
return rt_pin_read(BUTTON_PIN_1);
}

static void button_0_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
cnt_0++;
delayTime = cnt_0 * 200;
if (cnt_0 == 10)
{
cnt_0 = 1;
}
rt_kprintf("button 0 single click\ndelayTime=%d\n", delayTime);
break;
case DOUBLE_CLICK:
if (cnt_0 > 1)
{
cnt_0--;
}
delayTime = cnt_0 * 200;
rt_kprintf("button 0 double click\ndelayTime=%d\n", delayTime);
break;

case LONG_PRESS_START:
rt_kprintf("button 0 long press start\n");
break;
case LONG_PRESS_HOLD:
rt_kprintf("button 0 long press hold\n");
break;
}
}
static void button_1_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
state = !state;
if (state == 0) {
rt_kprintf("one color\n");
}
else {
rt_kprintf("more color\n");
}
rt_kprintf("button 1 single click\n");
break;
case DOUBLE_CLICK:
rt_kprintf("more color\n");
rt_kprintf("button 1 single click\n");
default:
break;
}
}
static void btn_thread_entry(void* p)
{
while (1)
{
/* 5ms */
rt_thread_delay(RT_TICK_PER_SECOND / 200);
button_ticks();
}
}
static int multi_button_test(void)
{
rt_thread_t thread = RT_NULL;
/* Create background ticks thread */
thread = rt_thread_create("btn", btn_thread_entry, RT_NULL, 1024, 10, 10);
if (thread == RT_NULL)
{
return RT_ERROR;
}
rt_thread_startup(thread);
/* low level drive */
rt_pin_mode(BUTTON_PIN_0, PIN_MODE_INPUT_PULLUP);
button_init(&btn_0, button_read_pin_0, PIN_LOW);
button_attach(&btn_0, SINGLE_CLICK, button_0_callback);
button_attach(&btn_0, DOUBLE_CLICK, button_0_callback);
button_attach(&btn_0, LONG_PRESS_START, button_0_callback);
button_attach(&btn_0, LONG_PRESS_HOLD, button_0_callback);
button_start(&btn_0);

rt_pin_mode(BUTTON_PIN_1, PIN_MODE_INPUT_PULLUP);
button_init(&btn_1, button_read_pin_1, PIN_LOW);
button_attach(&btn_1, SINGLE_CLICK, button_1_callback);
button_attach(&btn_1, DOUBLE_CLICK, button_1_callback);
button_attach(&btn_1, LONG_PRESS_START, button_1_callback);
button_attach(&btn_1, LONG_PRESS_HOLD, button_1_callback);
button_start(&btn_1);
return RT_EOK;
}
INIT_APP_EXPORT(multi_button_test);

int main(void)
{
uint32_t cnt = 0;
rt_kprintf("Hello, world11\n");
uint8_t pin = rt_pin_get("PE.1");
rt_pin_mode(pin, PIN_MODE_OUTPUT);
uint8_t pin1 = rt_pin_get("PE.4");
rt_pin_mode(pin1, PIN_MODE_OUTPUT);
uint8_t pin2 = rt_pin_get("PA.1");
rt_pin_mode(pin2, PIN_MODE_OUTPUT);
while (1)
{
if (cnt % 8 == 0)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 1)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 2)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 3)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 4)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 5)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 6)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 7)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (state == 1)
cnt++;
rt_thread_mdelay(delayTime);
}
}

編譯好,下載驗證如下!

poYBAGGHs9CAVGLXAAC80dTZHUo405.png

驗證OK!

其實還可以在此基礎上,讓ColorLed'更好玩,喜歡的愛好者可以試試讓它更炫酷?。。?/p>

最后,看到上一篇閱讀量破2100了(【RTT大賽作品連載】AB32VG1評估板到貨點燈測試-電子發(fā)燒友網(wǎng) (elecfans.com))

很高興!!!大家一起加油?。。?/p>

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

    關注

    243

    文章

    24595

    瀏覽量

    690828
  • RTOS
    +關注

    關注

    25

    文章

    866

    瀏覽量

    122979
  • 開發(fā)板
    +關注

    關注

    26

    文章

    6290

    瀏覽量

    118074
  • RT-Thread
    +關注

    關注

    32

    文章

    1613

    瀏覽量

    44872
  • 中科藍訊
    +關注

    關注

    10

    文章

    66

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Renesas MCB - RA8T1:電機控制評估CPU的深度解析

    Renesas MCB - RA8T1:電機控制評估CPU的深度解析 在電機控制評估領域,Re
    的頭像 發(fā)表于 12-29 10:25 ?679次閱讀

    EVAL - M1 - 101T評估:電機控制應用的理想選擇

    EVAL - M1 - 101T評估:電機控制應用的理想選擇 在電機控制應用領域,一款性能出色、功能豐富的
    的頭像 發(fā)表于 12-21 14:45 ?1304次閱讀

    EVAL-M1-IM241評估:電機驅(qū)動應用的理想之選

    EVAL-M1-IM241評估:電機驅(qū)動應用的理想之選 在電機驅(qū)動應用領域,一款性能出色、功能豐富的評估對于工程師們進行產(chǎn)品開發(fā)和
    的頭像 發(fā)表于 12-19 15:50 ?516次閱讀

    EiceDRIVER? 1EDI3035AS/1EDI3038AS 評估:深入解析與應用指南

    EiceDRIVER? 1EDI3035AS/1EDI3038AS 評估:深入解析與應用指南 在電子工程師的日常工作中,評估
    的頭像 發(fā)表于 12-19 14:55 ?506次閱讀

    安路DR1M90評估:從基礎外設到通信模塊測試指南

    本手冊由創(chuàng)龍科技研發(fā),針對安路飛龍 DR1M90 評估,詳述 Linux 系統(tǒng)下功能測試流程。含系統(tǒng)啟動驗證,LED、按鍵、DDR 等基礎外設測試
    的頭像 發(fā)表于 11-20 15:26 ?1415次閱讀
    安路DR<b class='flag-5'>1</b>M90<b class='flag-5'>評估</b><b class='flag-5'>板</b>:從基礎外設到通信模塊<b class='flag-5'>測試</b>指南

    STEVAL-3601CV1評估技術解析與應用指南

    STMicroelectronics STEVAL-3601CV1評估采用DCP3601CMR同步降壓轉(zhuǎn)換器,可增強峰值電流控制和高級設計電路。該
    的頭像 發(fā)表于 10-16 17:57 ?969次閱讀
    STEVAL-3601CV<b class='flag-5'>1</b><b class='flag-5'>評估</b><b class='flag-5'>板</b>技術解析與應用指南

    [投票評選]2025電子發(fā)燒友開發(fā)測評大賽--最受歡迎開發(fā)

    call吧,助力開發(fā)者生態(tài)持續(xù)成長! 投票入口: 2025電子發(fā)燒友開發(fā)測評大賽--最受歡迎開發(fā) 本次投票結(jié)果,將作為平臺后續(xù)挑選試用產(chǎn)品重要參考,歡迎大家踴躍參加哦~ 作品測評
    發(fā)表于 10-13 16:25

    【精選資料】開發(fā)測評大賽作品合集!

    電子發(fā)燒友攜手16家生態(tài)廠商發(fā)起開發(fā)測評大賽,設OpenHarmony、RISC-V、Rockchip三大賽道,共計21款、160+塊開發(fā),通過評測開發(fā)
    的頭像 發(fā)表于 09-23 08:09 ?1119次閱讀
    【精選資料】開發(fā)<b class='flag-5'>板</b>測評<b class='flag-5'>大賽</b><b class='flag-5'>作品</b>合集!

    作品合集】合眾HZ-T536開發(fā)測評

    合眾HZ-T536開發(fā)測評作品合集 產(chǎn)品介紹: HZ-T536_MiniEVM是一款基于全志T536系列處理器設計的工業(yè)評估,集成了4核Cortex-A55和RISC-V E907
    發(fā)表于 09-12 09:37

    作品精選】2025電子發(fā)燒友開發(fā)測評大賽作品合集!

    電子發(fā)燒友開發(fā)測評大賽--最受歡迎開發(fā) 以下為本次大賽作品合集: 微五科技CF5010RBT60開發(fā)
    發(fā)表于 09-03 15:24

    2222#RTT設計大賽 #眼圖

    RTT
    jf_34552825
    發(fā)布于 :2025年08月11日 11:43:45

    【創(chuàng)龍TL3562-MiniEVM開發(fā)試用體驗】評估功能測試(一)

    一、LED 測試 評估底板用戶可編程指示燈 LED1、LED2 與 GPIO 對應關系如下表所示 進入評估文件系統(tǒng),執(zhí)行如下命令
    發(fā)表于 07-30 22:06

    (大賽作品)STM32F072RB NUCLEO智能家居控制實例項目

    (大賽作品)STM32F072RB NUCLEO智能家居控制實例項目文檔截圖
    發(fā)表于 05-28 21:06

    Analog Devices Inc. EV-ADF4030SD1Z評估數(shù)據(jù)手冊

    與SDP K1控制相連。 使用Arduino連接器可將多個EV-ADF4030SD1Z評估
    的頭像 發(fā)表于 05-28 10:13 ?1257次閱讀
    Analog Devices Inc. EV-ADF4030SD<b class='flag-5'>1</b>Z<b class='flag-5'>評估</b><b class='flag-5'>板</b>數(shù)據(jù)手冊

    dfd#電路知識 #RTT設計大賽

    RTT
    jf_34552825
    發(fā)布于 :2025年05月08日 19:50:18