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
    +关注

    关注

    242

    文章

    23347

    浏览量

    662702
  • RTOS
    +关注

    关注

    22

    文章

    819

    浏览量

    119854
  • 开发板
    +关注

    关注

    25

    文章

    5121

    浏览量

    98064
  • RT-Thread
    +关注

    关注

    31

    文章

    1305

    浏览量

    40338
  • 中科蓝讯
    +关注

    关注

    9

    文章

    57

    浏览量

    9923
收藏 人收藏

    评论

    相关推荐

    全面解析:7种PCBA电路性能测试方法

    评估和确保电路的质量和性能。1.耐压测试评估电路的耐电压能力耐压
    的头像 发表于 12-16 17:13 456次阅读
    全面解析:7种PCBA电路<b class='flag-5'>板</b>性能<b class='flag-5'>测试</b>方法

    ADS1285EVM-PDK评估输出没有动态信号,只有静态信号是怎么回事?

    型号:ADS1285EVM-PDK 下单数量1pcs 您好,这款评估我们11月底下单了1pcs, 客户收到货后 在
    发表于 11-21 08:23

    【干货】性价比拉满!HK32F407VG开发介绍

    开发简介开发是基于航顺芯片公司F4系列HK32F407VGT7芯片的一款开发,Cortex-M4内核,最高主频168MHz,内置1MKBFlash和256KBSRAM,SDIO、
    的头像 发表于 11-08 13:27 291次阅读
    【干货】性价比拉满!HK32F407<b class='flag-5'>VG</b>开发<b class='flag-5'>板</b>介绍

    VCA824的Vg怎么控制

    求大神告知一下这个Vg应该如何控制,来实现增益调整呀
    发表于 09-05 08:27

    机智云ESP8266开发RGB彩灯控件

    随着智能家居技术的迅猛发展,RGB彩灯控件正逐渐成为现代家庭不可或缺的一部分。在这一潮流中,机智云(Gizwits)的ESP8266开发RGB彩灯控件以其先进的物联网技术和多样化的灯光控制
    的头像 发表于 08-09 08:10 446次阅读
    机智云ESP8266开发<b class='flag-5'>板</b>RGB<b class='flag-5'>彩灯</b>控件

    常见的电子元器件评估的作用

    电子元器件评估(Evaluation Board)是用来评估测试特定电子元器件(例如传感器、芯片、模块等)的功能和性能的工具。评估
    的头像 发表于 07-25 13:32 509次阅读

    AB变频器电源驱动坏了怎么修

    AB变频器电源驱动是工业自动化设备中的关键部件,它负责将输入的交流电转换为适合电机驱动的直流电。当电源驱动出现故障时,会导致整个系统无法正常工作。 一、了解AB变频器电源驱动
    的头像 发表于 07-19 11:22 792次阅读

    3568F-评估测试手册(ARM端)

    面图 图 2 评估背面图 图 3 评估斜视图 图 4 评估侧视图
    发表于 07-17 11:27

    3562-评估测试手册

    100%,评估底板大部分元器件亦采用国产工业级方案。核心经过专业的PCBLayout和高低温测试验证,支持选配屏蔽罩,质量稳定可靠,可满足各种工业应用环境要求。 评估
    发表于 07-17 10:59

    ADS8-V1EBZ 亚德诺半导体 评估 射频微波开发

    连接到指定的 ADI 高速 ADC 评估时,ADS8-V1 可用作数据采集。ADS8-V1 上的 FPGA 设计用于支持最高速 JE
    发表于 05-21 12:01

    英飞凌推出用于2kV碳化硅MOSFET模块的数字驱动评估

    半导体领域的创新者英飞凌科技近日发布了一款革命性的数字驱动评估——EVAL-FFXMR20KM1HDR,专为2kV碳化硅MOSFET模块设计。这款评估
    的头像 发表于 05-11 11:33 805次阅读

    NIS4461MT1评估数据手册

    电子发烧友网站提供《NIS4461MT1评估数据手册.rar》资料免费下载
    发表于 04-22 16:17 0次下载
    NIS4461MT<b class='flag-5'>1</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>数据手册

    研华荣获信通院工业数字孪生大赛优秀作品

    在信通院和芜湖市人民政府联合主办的2023第三届工业数字孪生大赛中,研华表现卓越,其研华数字孪生InsightAPM和研华智慧能源iEMS团队作品均获优秀作品奖,展现其在技术创新与应用实践上的卓越能力,推动“工业互联网+数字孪生
    的头像 发表于 04-17 09:48 503次阅读
    研华荣获信通院工业数字孪生<b class='flag-5'>大赛</b>优秀<b class='flag-5'>作品</b>奖

    玩转PSoC 6 RTT积木式开发套件,实现毫米波雷达等实用功能

    Jenson一起玩转这款灵活易用、玩法多样的MCU套件吧!PSoC6RTT开发是一款供广大开发者在评估测试阶段使用的开发套件,一经推出就得到了开发者们的一致好评。
    的头像 发表于 03-20 08:35 1065次阅读
    玩转PSoC 6 <b class='flag-5'>RTT</b>积木式开发套件,实现毫米波雷达等实用功能

    基于CPK-RA2L1评估的呼吸灯效果实现

    首先需要准备一块评估,这里我们使用瑞萨提供的R7FA2L1AB2DFM的评估,芯片封装为PLQP0064KB-C和内核Cortex-M2
    发表于 02-21 14:50 557次阅读
    基于CPK-RA2L<b class='flag-5'>1</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>的呼吸灯效果实现