络达开发-GPIO按键的定义

  • 硬件回路

针对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的按键了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值