移芯平台EC616上按键唤醒

背景

写个demo测试通信模块唤醒时间。可以默认GPIO输出低电平,按键上升沿唤醒模块,唤醒后即刻GPIO输出高电平,示波器测量下GPIO由低电平持续的时间间隔,作为模块唤醒时间参考。

技术痛点

由于平台基本有实例参考,基本是移植相关代码,概念理解后作出一些关键参数的改动。嵌入式中软件开发,一定要结合硬件原理图和相关硬件手册,重要的事我只强调一次。。。❤

1.项目创建

整个项目编译核心是Makefile.rule,采用ARMCC编译方式,实现通用.o 目标文件以及依赖文件.d 的生成规则,同时支持增量编译。
在Makefile中增添相关头文件和目标文件。
项目入口app.c文件,板级配置bsp_custom.c也会同步运行。
app.c文件添加一个任务,用来进行GPIO配置、输出、中断。
bsp_custom.c中添加按键配置、中断。

2.GPIO配置

外设配置无外乎配置相关结构体赋给相关接口函数。
1.GPIO配置:
gpio_pin_config_t
包含pinDirection: 确定输入、输出
misc:是一个共用体,要么是输入中中断配置;要么是输出初始化值。
2.接口函数
GPIO配置接口:GPIO_PinConfig()
GPIO写入:GPIO_PinWrite()
GPIO读出: GPIO_PinRead()
读取当前GPIO的中断状态标志位:GPIO_GetInterruptFlags()
清除当前GPIO的中断状态标志位:GPIO_ClearInterruptFlags()
禁止所有端口中断防止中断溢出:GPIO_SaveAndSetIRQMask()
恢复端口中断设置:GPIO_RestoreIRQMask()

3.模块休眠、按键唤醒

模块休眠同样是通过配置参数设置完成。
1.设置T3324时间;
	appSetEccfgSync()
2.设置休眠前须等待时间;
	BSP_SetPlatConfigItemValue();
3.配置省电状态为HIB。
	 BSP_SetPlatConfigItemValue();
     BSP_SetPlatConfigItemValue();
     pmuSetDeepestSleepMode(();
按键唤醒
1.按键初始化,设置唤醒方式
	PMU_WakeupPadInit
2.打开相应按键的中断
  NVIC_EnableIRQ()

测试结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火山宝 && 王林宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值