EMW3060引脚映射

  • EMW3060模块封装定义:

  • EMW3060 引脚定义

  • 代码中的映射关系
    aliso-things/platform/mcu/moc108/hal/gpio.c

    static const uint8_t gpio_map[] ={[1] = 30,[2] = 29,[3] = 17,[4] = 16,[5] = 14,[6] = 15,[7] = 0,[8] = 1,[11] = 20,[12] = 4,[17] = 23,[18] = 22,[19] = 11,[20] = 10,[21] = 21,};

右边的数字对于GPIO引脚号。

EMW3060 GPIO按键实现

在alios-things/board/mk3060/目录下创建key.c文件,并输入如下内容(这里使用ELINK按键实现加网操作)

#include "hal/soc/soc.h"
#include <aos/kernel.h>
#include <aos/aos.h>//GPIO29
#define KEY_ELINK  2static uint64_t   elink_time = 0;
static gpio_dev_t gpio_key_elink;static void key_poll_func(void *arg)
{uint32_t level;uint64_t diff;hal_gpio_input_get(&gpio_key_elink, &level);if (level == 0) {aos_post_delayed_action(10, key_poll_func, NULL);} else {diff = aos_now_ms() - elink_time;if (diff > 6000) { /*long long press */elink_time = 0;aos_post_event(EV_KEY, CODE_BOOT, VALUE_KEY_LLTCLICK);} else if (diff > 2000) { /* long press */elink_time = 0;aos_post_event(EV_KEY, CODE_BOOT, VALUE_KEY_LTCLICK);} else if (diff > 40) { /* short press */elink_time = 0;aos_post_event(EV_KEY, CODE_BOOT, VALUE_KEY_CLICK);} else {aos_post_delayed_action(10, key_poll_func, NULL);}}
}static void key_proc_work(void *arg)
{aos_schedule_call(key_poll_func, NULL);
}static void handle_elink_key(void *arg)
{uint32_t gpio_value;hal_gpio_input_get(&gpio_key_elink, &gpio_value);if (gpio_value == 0 && elink_time == 0) {elink_time = aos_now_ms();aos_loop_schedule_work(0, key_proc_work, NULL, NULL, NULL);}
}void key_init(void)
{gpio_key_elink.port = KEY_ELINK;gpio_key_elink.config = IRQ_MODE;hal_gpio_init(&gpio_key_elink);hal_gpio_enable_irq(&gpio_key_elink, IRQ_TRIGGER_FALLING_EDGE, handle_elink_key, NULL);
}

接着修改alios-things/board/mk3060/mk3060.mk文件,将key.c加入到编译对象中

... ...
#在这里加入key.c文件
$(NAME)_SOURCES := board.c  key.c
... ...

在alios-things/platform/mcu/moc108/aos/aos_main.c中调用按键初始化函数key_init,完成配置。

.... ....
extern void key_init(void);static void sys_init(void)
{.... ....key_init();.... ....
}void sys_start(void)
{aos_init();soc_driver_init();krhino_task_dyn_create(&g_aos_init, "aos-init", 0, AOS_DEFAULT_APP_PRI, 0, AOS_START_STACK, sys_init, 1);aos_start();
}

【Alios-things笔记】EMW3060 GPIO按键功能实现相关推荐

  1. STM32复习笔记(五) —— GPIO锁定机制

    STM32复习笔记(五) -- GPIO锁定机制 1.GPIO 锁定机制 锁定机制可以锁定 IO 口的配置,锁定一个端口位之后,直至下一次复位之前,将不能再更改端口位的配置 2.本例程软件设计思路 1 ...

  2. STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效

    STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效 点亮LED GPIO初始化函数:GPIO_Init() GPIO电平操作库函数:GPIO_WriteHigh().GPIO_ ...

  3. 【STM32F407学习笔记】GPIO(一)

    [STM32F407学习笔记]GPIO(一) 1. GPIO基础知识 1.1 GPIO工作方式 1.2 GPIO相关配置寄存器 1.2.1 端口模式寄存器:GPIOx_MODER 1.2.2 输出类型 ...

  4. 启明云端分享|ESP32学习笔记参考GPIO口操作

    提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考.同时也用 ...

  5. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  6. TMS320F28377S 学习笔记1 GPIO及学习资料

    参考资料 使用的DSP型号为28377s,不过最近似乎更新了 TMS320F28378S 使用的硬件开发板,居然已经停产了.C2000 Delfino MCUs F28377S LaunchPad D ...

  7. 秉火429笔记之三GPIO框图剖析

    目录 1. GPIO概述 2.保护二极管及上.下拉电阻 3. P-MOS管和N-MOS管 1. GPIO概述 GPIO是通用输入输出端口(General-purpose I/O)的简称.芯片的GPIO ...

  8. 笔记(6) —— GPIO检测高低电平

    文章目录 一.适用功能 二. 硬件设计(参考) 三. 软件设计 ① 使用到的固件库文件 ② 代码整理 一.适用功能 检测按键,光电开关,水位传感器等检测 GPIO 输入电平信号. 二. 硬件设计(参考 ...

  9. 笔记(5) —— GPIO 输出高低电平

    文章目录 一. 适用功能 二. 硬件设计(参考) 三. 软件设计 ① 使用到的固件库文件 ② 代码整理 一. 适用功能 GPIO 翻转.LED 闪烁.无源蜂铃器.跑马灯等 GPIO 输出高低电平控制. ...

最新文章

  1. 修改ceph-disk源码,增加指定ceph.conf部署osd的功能
  2. BZOJ 3436: 小K的农场( 差分约束 )
  3. jquery-ajax的同步与异步
  4. sendmail for linux
  5. CSS动画效果构成分析
  6. php查找之二分查找
  7. Luogu3613 睡觉困难综合征
  8. HP笔记本ProBook 445R G6刷BIOS历险记
  9. mysql 中文脱敏_怎样选择数据库脱敏系统?
  10. vue实现5秒后自动跳转到首页
  11. linux蓝屏漏洞,WIN 10漏洞:访问特定本地设备导致系统崩溃
  12. 小班关于计算机运用的教案,关于信息技术在幼儿园的运用教案设计
  13. Word如何操作压缩图片?干货经验!怎么在Word中压缩图片?
  14. eclipse package,source folder,folder区别
  15. apt-get: relocation error:/libapt-private.so.0.0 version APTPKG_5.0 not defined in file libapt-pkg
  16. JavaScript判断一个数字是否为素数
  17. exit和return的区别
  18. 综合治理GIS方案(综治)
  19. 立方公式 及 完全立方公式
  20. PCB生产工艺流程一:PCB分类的三大要点

热门文章

  1. 柏西机器人_《勿忘我》孔木猴 ^第9章^ 最新更新:2020-07-25 08:35:09 晋江文学城_手机版...
  2. 使用树莓派来做打印服务器
  3. linux自动断开会话,Linux系统SSH连接自动断开问题的解决方法
  4. 《指数基金投资指南》银行螺丝钉 ---读书
  5. 简约资源教程分享网模板,emlog模板
  6. 小米9开发版自带root吗_小米手机MIUI9开发版开启ROOT权限方法,这些经验不可多得...
  7. gitHub官网访问慢的问题
  8. 使用idea解决包依赖冲突的问题SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory
  9. 怎么在windows笔记本使用html,笔记本上快捷键用不了 笔记本电脑上音量键用不了了...
  10. ubuntu20.04 ros 采集velodyne激光雷达数据