前段时间写了杰理AD140/AD150的长按键开关机问题和休眠唤醒GPIO配置问题:

杰理AD14N/AD15N---长按键开关机怎么实现_Jim-CSDN博客

杰理AD14N/AD15N---休眠和关机唤醒问题_Jim-CSDN博客

今天测试样机时发现开机按键奇妙地有了触摸功能,也就是说手放上去一会儿就能开机,不需要按键按下。这种情况怎么整?第一时间当然是想到去检查触摸按键是不是没关,但是它确实是关的。

那怎么办,我也想知道怎么办,但是作为一个专业解决疑难杂症的FAE,我不能动不动就去问原厂,一般只有在我熬了2个通宵,熬掉259根头发还解决不了问题的时候才会去问原厂。

思考一下什么情况会出现引脚没接地,但是手一碰就像接地了一样呢?

是不是马上想到了GPIO不定态?也就是pull none.

那么,问题不大,请看:

我使用了PA5做唤醒引脚,所以在close gpio中把PA5的上拉打开,下拉关闭,就好了,这样配置即使在软关机状态下,PA5的内部上拉也是开着的。

那么,问题来了,请问为什么有些朋友没遇到过这个问题?

因为这个问题复现是有条件的,前面说到的GPIO不定态PULL NONE,就是GPIO是悬空的,没有电位稳住它,假设你的板子是用了外部上拉,而不是内部上拉,那么就不会遇到这个问题,而我,刚好用了内部上拉,然后奇怪的是设置唤醒引脚的地方明明使能了内部上拉了,却还是不行,所以,玄学编程由此而来,写了一天全是Bug,请看:

最后附上close_gpio函数凑点字数:

void close_gpio(u8 soft_off)
{u32 porta_value = 0xffff & ~(BIT(5));///Jim 唤醒口不要设置状态u32 portb_value = 0xffff & ~(BIT(10));u32 portd_value = 0x1f;if (soft_off) {mask_io_cfg();}if (spi_get_port() == 0) {portd_value &= ~0x1f;if (power_param.flash_pg) {portd_value |= BIT(4);}} else {}JL_PORTA->DIR |= porta_value;JL_PORTA->PU &= ~(porta_value);JL_PORTA->PD &= ~(porta_value);JL_PORTA->DIE &= ~(porta_value);JL_PORTA->DIEH &= ~(porta_value);JL_PORTA->PU |=  BIT(5);JL_PORTA->PD &= ~BIT(5);//PB1:长按复位JL_PORTB->DIR |= portb_value;JL_PORTB->PU &= ~(portb_value);JL_PORTB->PD &= ~(portb_value);JL_PORTB->DIE &= ~(portb_value);JL_PORTB->DIEH &= ~(portb_value);JL_PORTD->DIR |= portd_value;JL_PORTD->PU &= ~(portd_value);JL_PORTD->PD &= ~(portd_value);JL_PORTD->DIE &= ~(portd_value);JL_PORTD->DIEH &= ~(portd_value);
}

总结一句就是:问题不大,继续搬砖。

杰理AD14N/AD15N---GPIO唤醒引脚触摸时会有效的问题相关推荐

  1. 杰理科技AD15N系列玩具类音频开发

    1.资源获取 杰理官方AD15开源版SDK 链接:https://gitee.com/Jieli-Tech/fw-AD15N 2.杰理科技发布的关于AD14/15系列官方文档最新链接,持续完善和更新中 ...

  2. 杰理AD14N/AD15N---UART串口使用问题

    前段时间用杰理AD152A做的项目遗留了个bug,今天重新拍查了一下代码. 问题现象:串口初始化完成后会自动发一个空格字符"0x20",并且发送的第一个字节会丢失. 驱动文件:是杰 ...

  3. 杰理6905A芯片引脚的设置

    杰理6905A芯片只有24引脚,并且大部分都已经设定好了,规定好的引脚用完之后就只剩下最后几个口. IR(遥控器口):key_drv_ir.c 中 ir_key_init()找到 IR_PORTC(4 ...

  4. 小爱同学100个奇葩回复_杰理新一代蓝牙芯片将内置小爱同学,语音唤醒、降噪、连续对话加持蓝牙音箱...

    在 11 月 20 日召开的小米 AI 生态峰会暨小爱同学 3.0 发布会上,珠海杰理科技作为小爱同学在芯片端赋能的代表企业,带来了 3 款内置小爱同学标准 SDK 的第二代降噪.语音唤醒蓝牙芯片.据 ...

  5. 杰理-watch-手表-AC701-双击屏幕唤醒

    杰理-watch-手表-AC701-双击屏幕唤醒 TP不在休眠状态,功耗较大,测试熄屏功耗2-3mA (1)TP抬起的时候rouse_two_flag置1 判断是都开启双击唤醒,关闭TP则进入睡眠,功 ...

  6. 杰理AC690X系列---TF卡的DATE和CLK引脚复用AD采集(6)

    杰理690X系列的一些封装可用的引脚极少,例如6905系列 前段时间见过一个K歌宝,用6905B做主控,支持U盘,TF卡,AUX,还需要一个MUTE引脚,一个耳机检测引脚 一个按键AD引脚,两个调节M ...

  7. 杰理之AD15怎么动态设置睡眠唤醒参数?【篇】

    AD14,AD15有时候会碰到应用上唤醒引脚并不是固定的要求上升沿或者下降沿唤醒的需求,会根据实际的情况实时设定唤醒参数.

  8. Esp32-C3使用gpio唤醒深度睡眠,rtc gpio0~5始终置低,导致低电平唤醒一直复位,高电平唤醒无效?

    Esp32-C3使用gpio唤醒深度睡眠,rtc gpio0-5始终置低,导致低电平唤醒一直复位,高电平唤醒无效? 为省电环保,需要让芯片进入深度睡眠,然后在需要时唤醒它,而不是复位重启 我使用vsc ...

  9. 杰理AC692X---常用模式介绍

    常用模式介绍 692X系列的SDK支持多种模式切换,以下是一些常用的模式介绍,RTC模式和录音模式在此不讲解. 蓝牙模式 用的最多的应该是蓝牙模式,蓝牙模式主要由以下宏定义进行协议选择: 注销掉的是B ...

最新文章

  1. python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
  2. VC10中的C++0x特性简介
  3. 学python编程_少儿学Python编程的一些思考
  4. 系统更新win10服务器失败,win10更新失败?使用这三招轻松解决,远离更新失败的烦恼!...
  5. android 应用区高度,Android创建显示区高度可以调整的ScrollView
  6. python 魔法方法常用_12个常用的IPython魔法命令
  7. process下载与使用
  8. android 模拟器 锁屏,锁屏桌面全模拟 Android 4.0伪装教程
  9. solidity 0.5.7简明教程
  10. java华氏摄氏转换练习
  11. 设计模式(十一)——树形结构:组合模式
  12. Excel查看工作表有多少列
  13. python print 格式化输出
  14. 兔聊图片二维码logo个性制作
  15. 浏览器内部工作原理[译]How browsers work (转)
  16. 工具推荐——Apt_t00ls
  17. 你真的了解抑郁症吗?
  18. 奇安信渗透测试面试题库_奇安信面试经验
  19. c语言搬山游戏,C语言实例:搬山游戏
  20. 【云原生】裸金属架构之服务器安装VMWare ESXI虚拟化平台详细流程

热门文章

  1. innoDB可重复读级别是否可以隔离幻行读
  2. 基于matlab的瑞利信道模拟和仿真
  3. windows下python利用f2py调用Fortran
  4. STM32F10××中英文手册
  5. htc解锁后root,htc的手机怎么解锁
  6. 软件开发成本计价及相关问题
  7. SQL Server拼接字符串执行语句,引号中加引号。
  8. AlphaGo简易版MuGo源码解析
  9. 微信小程序解析unionid
  10. Oracle 11g存在密码过期问题