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

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

3天内不再提示

基于博流BL606P音视频开发板的ADC Key按钮例程

芯片开放社区 来源:芯片开放社区 作者:芯片开放社区 2023-05-22 11:09 次阅读

编辑语:

芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。

本文是关于开发者 kit7828基于BL606P-DVK开发板实战开发的系列文章中的第三篇,主要介绍了ADC Key按钮例程,后面还会持续更新该开发者的测评内容,敬请期待!

BL606P的ADC按键都接在IO管脚上的GPIO16,需要设置跳线帽。根据分压电阻网络获取不同的电压值,通过AD转换值区分按下了哪个按键。

01硬件及连接

根据官方提供的资料,可以看到如下的原理图

20cd2eaa-f84c-11ed-90ce-dac502259ad0.png

ADC的管脚使用的是GPIO16,需要设置跳线帽。

KEY_IN通过FPC连接线连接至KEY

20e535ea-f84c-11ed-90ce-dac502259ad0.png

而key连接至按键电阻分压网络

20f89f54-f84c-11ed-90ce-dac502259ad0.png

通过不同大的分压,确定哪个按键按下

02软件实现

平头哥官网给出的ADC例程

210d3216-f84c-11ed-90ce-dac502259ad0.png

具体实现代码

212d9614-f84c-11ed-90ce-dac502259ad0.png

CDK中具体代码为:

2.1 设置管脚

void adcpin_init(void)
{
csi_pin_set_mux(GPIO_PIN_16, GPIO16_ADC_CH8);
}

2.2 ADC初始化

void adckey_Init()
{
adc.port = 8;
adc.config.sampling_cycle = 100;
    hal_adc_init(&adc);
}

2.3 按键检测代码

#define KEY_NOTHING19

uint16_t GetKey()
{
//持续检测按键次数
#define CHECKNUM 10

uint32_t value;
uint16_t kval=0;
uint16_t oldkey=KEY_NOTHING,i=0;

hal_adc_value_get(&adc, &value, HAL_WAIT_FOREVER);
kval = (value & 0xffff)>> 9;

if(kvalCHECKNUM)i=CHECKNUM;
}
}
else oldkey=KEY_NOTHING;

return KEY_NOTHING;
}
){>

2.4 按键判定代码

keyval = GetKey();
if( keyval < 19)
printf("Key Pressed:  %d 
", keyval);

aos_msleep(5);
switch (keyval) {
case 0:
printf("K4 Pressed. 
");
break;
case 3:
printf("K3 Pressed. 
");
break;
case 8:
printf("K6 Pressed. 
");
break;
case 11:
case 12:
printf("K5 Pressed. 
");
break;
case 17:
printf("K7 Pressed. 
");
break;
}

03运行后效果

2143021a-f84c-11ed-90ce-dac502259ad0.png

按键检测过程中,由于运用ADC检测电压,会出现浮动情况,比较好的解决办法是多读数几次,取平均值。

审核编辑:汤梓红

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

    关注

    95

    文章

    5651

    浏览量

    539474
  • 音视频
    +关注

    关注

    4

    文章

    414

    浏览量

    29574
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93999
  • key
    key
    +关注

    关注

    0

    文章

    44

    浏览量

    12744
  • 按键检测
    +关注

    关注

    0

    文章

    21

    浏览量

    4796

原文标题:应用速递 | 博流BL606P音视频开发板:三、ADC Key按钮例程

文章出处:【微信号:芯片开放社区,微信公众号:芯片开放社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于博流BL606P音视频开发板开发环境搭建及例程测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第一篇,主要介绍了开发环境搭建及
    发表于 06-09 10:04 520次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的<b class='flag-5'>开发</b>环境搭建及<b class='flag-5'>例程</b>测试

    博流BL606P音视频开发板:(三)ADC测试

    本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了ADC测试,后面还会持续更新该
    的头像 发表于 04-10 10:26 498次阅读

    基于博流BL606P音视频开发板的智能音箱测试

    本文是关于开发者 qinyunti 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了智能音箱测试,后面还会持续更新该开发
    的头像 发表于 05-09 11:22 585次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的智能音箱测试

    博流BL606P音视频开发板:HelloWord Demo运行及跳线帽设置

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第一篇,主要介绍了环境搭建及HelloWord Demo运行,后面还会持续更新该
    的头像 发表于 05-15 15:25 651次阅读
    博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>:HelloWord Demo运行及跳线帽设置

    基于博流BL606P音视频开发板实现RGB点灯

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第二篇,主要介绍了BL606P实现RGB点灯,后面还会
    的头像 发表于 05-18 10:57 609次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>实现RGB点灯

    博流BL606P音视频开发板CKLink无法下载的解决办法

    本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第五篇,主要介绍了CKLink无法下载的解决办法,后面还会持续更新该
    的头像 发表于 05-29 10:59 497次阅读
    博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>CKLink无法下载的解决办法

    基于博流BL606P音视频开发板的智能音箱系统开发方案

    本文是关于开发者 乔帮主 分享了在Docker环境下,基于博流BL606P音视频开发板,进行智能音箱系统搭建的完成过程。按照文中步骤操作后,你将得到一个可以进行对话的智能音箱。
    的头像 发表于 06-06 17:11 2074次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的智能音箱系统<b class='flag-5'>开发</b>方案

    基于博流BL606P音视频开发板的蓝牙音频测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第三篇,主要介绍了蓝牙音频测试,后面还会持续更新该开发
    的头像 发表于 06-25 09:42 348次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的蓝牙音频测试

    基于博流BL606P音视频开发板驱动LED数码管

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第四篇,主要介绍了LED数据管模块TM1638驱动的测试,后面还会持续更新该
    的头像 发表于 06-29 09:49 273次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>驱动LED数码管

    基于博流BL606P音视频开发板的CAN扩展模块收发测试

    本文是关于开发者 zhanghui 基于BL606P-DVK开发板实战开发的系列文章中的第五篇,主要介绍了CAN扩展模块收发测试,后面还会持续更新社区
    的头像 发表于 07-03 10:06 409次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的CAN扩展模块收发测试

    基于BL606P-DVK音视频开发板的实战案例

    本文是关于开发者 乘简 基于BL606P-DVK开发板实战开发的系列文章中的第五篇,主要介绍了CAN扩展模块收发测试!
    发表于 07-06 10:51 343次阅读

    博流BL606P音视频开发板:驱动MAX7219点阵模组

    本文是关于开发者 乘简 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了驱动MAX7219点阵模组,后面还会持续更新社区开发
    的头像 发表于 07-10 10:43 536次阅读
    博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>:驱动MAX7219点阵模组

    基于博流BL606P音视频开发板的GPIO点灯教程

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了GPIO点灯,后面还会持续更新社区开发
    的头像 发表于 07-17 10:54 447次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的GPIO点灯教程

    基于博流BL606P音视频开发板驱动LED数码管

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了驱动led数码管,后面还会持续更新社区开发
    的头像 发表于 07-20 10:58 325次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>驱动LED数码管

    基于博流BL606P音视频开发板的音响测试

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了音响测试,后面还会持续更新社区开发者的测
    的头像 发表于 07-25 09:56 341次阅读
    基于博流<b class='flag-5'>BL606P</b><b class='flag-5'>音视频</b><b class='flag-5'>开发板</b>的音响测试