杰理AC692X---开关机实现方式介绍

本文详细介绍了硬开关机和软开关机两种实现方式,硬开关机通过直接供电控制芯片状态,而软开关机则使芯片在休眠模式与唤醒状态间切换。文中还讲解了如何在代码中配置开关机功能,包括初始化引脚、设置按键宏定义和调整关机时间。

开关机实现方式介绍

硬开关机

硬开关机意思是芯片一供电就开机,断电就是关机。常见的有DC直流电源直插开机,拔掉关机;拨动开关等。

这种开关机方式就较为简单了,不需要做太多处理,主要在代码中把以下函数注销即可:

把这个函数注销以后,则芯片上电就直接开机了,不做电压的其他判断。

 

软开关机

软开关机就是说芯片一直供电,关机状态下实际上是进入了休眠模式,开机就是把芯片从休眠模式中唤醒,注意只有PR口可以唤醒芯片,所以如果使用的芯片型号没有PR口,就做不了这种软关机方式,需要用双向二极管加MOS管的方式来实现按键开关机。常用的软开关机引脚是PR2口。

把这个函数取消注销,然后定位到函数实体中看(check_power_on_voltage):

这个函数较长,我们只看关键部分。

POWER_KEY_INIT();是初始化开机引脚,下面的判断是开机计数 ,如果按键按下了,时间持续到设定的时长,就开机,按到一般松开了或者没计数到设定市场都不开机。

右键选择POWER_KEY_INIT();,定义到开机按键的宏定义处可以修改开机引脚:

 

那么关机改怎么做呢?

打开按键宏定义

把以下位置的GPIO按键宏定义置1:

这样我们就选择了使用GPIO按键了。

按键引脚修改

这里我们定义了IO_KEY_ONLY_ONE,所以只有一个按键,引脚使用的是PR2引脚,如果想用多个按键,则注销IO_KEY_ONLY_ONE这个宏定义,然后参照下面额#else后面的KEY_INIT()去增加自己的按键引脚定义。

 

 

 

 

然后打开IO按键的C文件:

 

可以看到当KEY0按下时,键值返回0,这个0对应到按键列表里面的0,如下:

意思是当KEY0按下是,执行MSG_BT_PP这个消息,这个消息就是控制手机的音乐播放暂停的功能。另外按键还可以分为长按、按住、长按抬起的功能:

这里做的功能是长按关机,至于关机长按时间的设置在如下位置:

根据项目需求,改成符合项目的值即可。

在692X的SDK中,各个模式(U盘,AUX,FM,蓝牙)的按键消息是分开的,都需要单独配置,跟上面以蓝牙按键为例的配置是一样的:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jim天河

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

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

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

打赏作者

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

抵扣说明:

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

余额充值