0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【RTT大赛作品连载】AB32VG1评估板到货控制彩灯测试

磐石90 2021-11-07 19:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

上次发布了一篇文章(【RTT大赛作品连载】AB32VG1评估板到货点灯测试-电子发烧友网 (elecfans.com)),解决很多爱好者从在RT-ThreadStudio新建项目到对应开发配置及下载等各部分环节的问题!得到了很多爱好者的认可!

poYBAGGHrWyASMyOAAYobxoiuxI615.png

哈哈,先晒点赞的!

pYYBAGGHrb-ACM6mAAX42sJaxqw946.png

重要的是帮好多爱好者解决了实际问题!

接下来看看在如何AB32VG1评估板控制彩灯!

在RT-ThreadStudio新建项目到对应开发配置及下载及验证测试!!!

还是详细点!!!用截图-》

新建项目!

poYBAGGHrseAOHNcAAFyO6pqkpc957.png


poYBAGGHr8KAILxwAAFBOz6cLlg570.png

点完成,新建就好了!

接下来是这次会用的软件包设置!!!

poYBAGGHsL2AUAC8AAHa1S9PV8Y803.png

设置好后点关闭,会提示保存设置选项,点保存即可!

接下来会用到这几IO!如图

pYYBAGGHsdWAOYclAA9a6ZVbpp4963.png

软件代码内容暂时直接写在main函数文件里!!!

如图

具体内容如下:

#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'更好玩,喜欢的爱好者可以试试让它更炫酷!!!

最后,看到上一篇阅读量破2100了(【RTT大赛作品连载】AB32VG1评估板到货点灯测试-电子发烧友网 (elecfans.com))

很高兴!!!大家一起加油!!!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24434

    浏览量

    687369
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122594
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113250
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44271
  • 中科蓝讯
    +关注

    关注

    10

    文章

    64

    浏览量

    10570
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    安路DR1M90评估:从基础外设到通信模块测试指南

    本手册由创龙科技研发,针对安路飞龙 DR1M90 评估,详述 Linux 系统下功能测试流程。含系统启动验证,LED、按键、DDR 等基础外设测试
    的头像 发表于 11-20 15:26 528次阅读
    安路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同步降压转换器,可增强峰值电流控制和高级设计电路。该
    的头像 发表于 10-16 17:57 627次阅读
    STEVAL-3601CV<b class='flag-5'>1</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>技术解析与应用指南

    [投票评选]2025电子发烧友开发测评大赛--最受欢迎开发

    call吧,助力开发者生态持续成长! 投票入口: 2025电子发烧友开发测评大赛--最受欢迎开发 本次投票结果,将作为平台后续挑选试用产品重要参考,欢迎大家踊跃参加哦~ 作品测评
    发表于 10-13 16:25

    【精选资料】开发测评大赛作品合集!

    电子发烧友携手16家生态厂商发起开发测评大赛,设OpenHarmony、RISC-V、Rockchip三大赛道,共计21款、160+块开发,通过评测开发
    的头像 发表于 09-23 08:09 741次阅读
    【精选资料】开发<b class='flag-5'>板</b>测评<b class='flag-5'>大赛</b><b class='flag-5'>作品</b>合集!

    作品合集】视美泰M-K1HSE、3568开发测评

    视美泰M-K1HSE、3568开发测评作品合集 产品介绍: M-KIHSE开发: M-KIHSE开发是一款基于进选时空K
    发表于 09-22 10:32

    作品合集】合众HZ-T536开发测评

    合众HZ-T536开发测评作品合集 产品介绍: HZ-T536_MiniEVM是一款基于全志T536系列处理器设计的工业评估,集成了4核Cortex-A55和RISC-V E907
    发表于 09-12 09:37

    作品合集】沁恒微电子CH585开发测评

    沁恒微电子CH585开发测评作品合集 产品介绍: CH585是集成BLE无线通讯和高速USB及NFC的RISC-V MCU/SoC。片上集成了2Mbps低功耗蓝牙BLE通讯模块、USB全速控制
    发表于 09-08 10:38

    作品精选】2025电子发烧友开发测评大赛作品合集!

    电子发烧友开发测评大赛--最受欢迎开发 以下为本次大赛作品合集: 微五科技CF5010RBT60开发
    发表于 09-03 15:24

    作品合集】创龙科技TLT113/TL3562-MiniEVM开发测评

    Cortex - M0 架构的国产工业评估,主频达 2.0GHz。核心元器件国产化率 100%,评估底板约 99%。核心经专业 PC
    发表于 09-02 11:25

    2222#RTT设计大赛 #眼图

    RTT
    jf_34552825
    发布于 :2025年08月11日 11:43:45

    【创龙TL3562-MiniEVM开发试用体验】评估功能测试(一)

    一、LED 测试 评估底板用户可编程指示灯 LED1、LED2 与 GPIO 对应关系如下表所示 进入评估文件系统,执行如下命令
    发表于 07-30 22:06

    新品 | 用于CoolSiC™ MOSFET FF6MR20W2M1H_B70的双脉冲测试评估

    新品用于CoolSiCMOSFETFF6MR20W2M1H_B70的双脉冲测试评估评估是用于
    的头像 发表于 06-12 17:33 985次阅读
    新品 | 用于CoolSiC™ MOSFET FF6MR20W2M<b class='flag-5'>1</b>H_B70的双脉冲<b class='flag-5'>测试</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>

    (大赛作品)STM32F072RB NUCLEO智能家居控制实例项目

    (大赛作品)STM32F072RB NUCLEO智能家居控制实例项目文档截图
    发表于 05-28 21:06

    Analog Devices Inc. EV-ADF4030SD1Z评估数据手册

    与SDP K1控制相连。 使用Arduino连接器可将多个EV-ADF4030SD1Z评估
    的头像 发表于 05-28 10:13 691次阅读
    Analog Devices Inc. EV-ADF4030SD<b class='flag-5'>1</b>Z<b class='flag-5'>评估</b><b class='flag-5'>板</b>数据手册

    dfd#电路知识 #RTT设计大赛

    RTT
    jf_34552825
    发布于 :2025年05月08日 19:50:18