• 硬件回路

针对AB1565的开发板的Headset工程来讲,KEY2的事件是不能使用的,原因是AB1565芯片的GPIO2是一个功能复用脚,可以用来实现USB接口下载固件,在芯片spec的第23页,如下图所示:

因此,在开发板上,电路上默认接了个下拉电阻,如下图所示,默认装的是R1303

而在SDK中,用于的GPIO中断口需要配置为上拉状态(DVDD_IO_0,约为1.8VDC),因此这样就会导致MCU内置的上拉电阻无去把电平拉高,从而无法完成事件的有效触发。下图为KEY2对应的电路部分,从原理图中可知KEY2对应的为2号外部中断(EINT2),切连接的为GPIO2。

因此,若想要EINT2(GPIO2)正常用于按钮,需要把R1303取下,笔者操作过的板子,如下图所示:

  • 软件配置

首先,需要配置工程,使其支持外部引脚的中断事件,在工程的目录下(MCU)对工程的配置文件进行调整,该文件为:

mcu\project\ab1565_ab1568_evk\apps\xxxxxx\GCC\feature65_evb.mk

工程默认的配置是关闭外部中断模块的,如下所示,把 MTK_BT_PKA_IDS_ENABLE 的值由原来的y改成n,

这样才会打开EINT_KEY_ENABLED这个功能,如下所示:

深入一步:通过查找可以发现,打开EINT_KEY_ENABLED宏后,工程就会把driver/board/component/bsp_eint_key/module.mk所含的驱动加载进来(mcu\project\ab1565_ab1568_evk\apps\xxxx\GCC\Makefile);打开该module.mk文件后,可心发现,它所编译的为GPIO外部中断事件的功能,

另外,MTK_EINT_KEY_ENABLE这个宏定义,也可以在工程的Makefile中进行添加来实现。

上面对应的功能模块打开之并把硬件回路理顺并调整后,还需要在软件中对GPIO2进行正确配置,把它配置为外部中断的功能;

SDK默认的Headset工程中,GPIO2是被用于UART_CTS的;需要修改的文件为:

mcu\project\ab1565_ab1568_evk\apps\headset_wuYin\src\boards\ab1565_evb\ept_gpio_var.c

修改后的内容为:

BSP_EINTKEY0对应的IO口及属性(暂不知别的几个值的作用)

注意:GPIO2只能对应EINT2,但在SDK中把其重命名成了BSP_EINTKEY0,使其不依赖为具体的引脚 编号 ;

从EPT配置工具中也可以看出:

EPT对GPIO口映射

同时,还需要修改GPIO0的上下拉配置,及输出输入的模式,该文件在:

mcu\project\ab1565_ab1568_evk\apps\headset_wuYin\inc\boards\ab1565_evb\ept_gpio_drv.h

IO 口的功能为EINT2

配置GPIO2为输入模式

使能GPIO2为上拉模式

禁用GPIO2的下拉模式

完成上述工作,就可以在customerized_key_config.c中使用 “EINT_KEY_0” “EINT_KEY_1”“EINT_KEY_2”等逻辑按键来定义进行UI的定义,如下图所示:

最后,重新编译工程并下载到芯片,就可以正常使用EINT2的按键了。

络达开发-GPIO按键的定义相关推荐

  1. 络达开发---UI定义+自定义按钮事件

    平台:AB1565M SDK版本:V2.11.0 开发环境:windows10 络达的SDK中有默认的参考工程,其中包含默认的按钮的事件定义.这些定义是基于官方的评估板进行设计的.通常用户在开发自己的 ...

  2. 络达开发---自定义BLE服务(一):相关数据结构讲解

    平台:AB1565M SDK版本:V2.11.0 开发环境:windows10 一.BLE服务相关的几个结构定义 理解Airoha的SDK对BLE的支持,就必须要理解下面这些结构的功能,因为定义BLE ...

  3. 络达开发---自定义BLE服务(二):功能实现

    络达开发--自定义BLE服务(一) 一.目录和工程的配置 本文讲解如何在该SDK中添加用户自居定义的BLE服务.该服务的源码可以存放在自己希望的位置,但为符合工程目录的合理性,建议放在工程所在的目录下 ...

  4. 络达开发-AB15XX实时查看Log方法

    源自:络达开发-AB15XX实时查看Log方法 - 知乎络达开发板为例. 开发过程中,难免要查看系统运行的实时输出的日志,在此表述如何查看. 1.需要的工具:USB转RS232-TTL,如下图所示: ...

  5. 络达开发----如何手工实时调整ANC和PassThrough的增益

    芯片型号:AB1565 功能模块:ANC和PassThrough 功能描述:ANC和PassThrough支持动态调整其增益,比如ANC的消噪强度,或者PassThourgh的透传比例:PassTho ...

  6. 络达开发---自定义Timer的实现

    平台:AB1565M SDK版本:V2.11.0 开发环境:windows10 络达SDK是在FreeRTOS的基础上进行构建的,因此我们可以使用该RTOS的机制来建设Timer任务. 需要在C文件中 ...

  7. 络达开发----如何开启DMIC

    芯片型号:AB1565 功能模块:数字MIC接口的使用 AB1656评估板上支持两路数字MIC,分别为DMIC0和DMIC1,如果图1所示,分别 可以由GPIO_2/3/4/5/13/14/15/16 ...

  8. 络达开发-音频流处理-AAC/loopbackTest为例

    音频流主要是在DSP中进行处理,此处以aac_dec_interfaces.c和audio_loopback_test_interface.c两个源码文件来实例来分析介绍.两文件的路径分别是: bta ...

  9. 络达开发---串口日志日志过滤

    平台:AB1565M SDK版本:V2.11.0 开发环境:windows10 采用官方ATK中的日志工具可以通过硬件物理串口来实时查看芯片中软件的运行日志.如下图所示,其实该ATK工具为一若干个工具 ...

最新文章

  1. select查询中@作用_SQL学习第四关:复杂查询
  2. mysql udf提权_MySQL日志安全分析技巧
  3. 最美四门轿跑车斯柯达Coupe面世,CC也害怕。
  4. SpringBoot整合Redis 主从复制_01
  5. Android 实现手写板技术
  6. Spring学习总结(10)——Spring JMS---三种消息监听器
  7. 使用CSS创建Digg样式风格的导航栏或菜单
  8. bzoj 3872 [ Poi 2014 ] Ant colony —— 二分
  9. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_7_Stream流中的常用方法_limit...
  10. robocopy 备份_备份双雄!Robocopy和XXCOPY使用详解
  11. Mac 上使用 zmodem 发送和接收堡垒机文件
  12. matlab实现像素分类,定义使用 Tversky 损失的自定义像素分类层
  13. Android 腾讯地图定位功能一二三
  14. 利用三角形三条边求三角形面积
  15. 知识付费——移动端音视频加密、防盗播实现方案
  16. 服务器系统centos ubuntu,CentOS vs Ubuntu:为您的服务器选择最佳操作系统
  17. webpack工具链热替换 -- angularjs的粗放式实现
  18. Synergy服务端显示异常解决办法
  19. 「原创」大数据岗位总结和相关书籍推荐
  20. 车载以太网协议的架构

热门文章

  1. Shift_JIS、CP932、MS932、Windows-31J
  2. oracle数据库中如何插入特殊符号''
  3. Postman进阶篇(十二)-在脚本中使用pm对象访问接口响应数据(pm.response.*)
  4. 纽约市无线网基础设施建设项目(二期)获得项目批准
  5. 麒麟案例 | 只做对一件事,他的亚马逊店铺销量翻了10倍!
  6. ABPVnext创建项目排坑1
  7. C/C++ 盒子游戏
  8. 区块链端对端交易性能分析
  9. .NET 6使用ImageSharp给图片添加水印
  10. 知识产权宣传周线上知识竞赛答题