NXP KW45低功耗的实现

本文记录了使用NXP官方架构进行BLE低功耗功能开发的过程,包括配置外部唤醒引脚、设置唤醒源及中断服务函数等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,前言

最近负责BLE的低功耗功能开发,发现NXP为低功耗需求的实现提供了一套官方架构。本文将记录整个开发过程。由于是边开发边记录,逻辑上可能没有那么通顺,等开发完成后会优化文章的逻辑结构。

2,添加引脚唤醒源,并唤醒设备。

         1,唤醒源的类型

                分为外部引脚唤醒和低功耗外设唤醒,比如低功耗定时器等。

           2,不同类型唤醒源触发唤醒,后续的执行流程是不同的

                从数据手册中我们发现,如果是外部引脚唤醒就会触发WUU模块的中断服务函数。

                在WUU的中断服务函数中我们再去调用唤醒后的执行函数。

PM_InitWakeupSource(&ptc6WakeUpSource, PM_WSID_PTC6_FALLING_EDGE, APP_ButtonWakeupService, true);

3,外部唤醒引脚的配置

        通过WUU中的唤醒源列表,其实有部分引脚唤醒,比如PTC6等。其实这里似乎就提示了就是普通的gpio,并不是复用为唤醒源的模式,因为压根就没有。

原文是:When an external pin is enabled as a wakeup source,
the pin must be configured as an input pin.

        as an input pin.最后我就是将PTC6,这个引脚在port驱动下配置为了gpio,并且为输入模式。

 4,唤醒模块中断配置

        

#define WUU_PIN_FLAG_CLEAR_MASK (WUU_PF_WUF0_MASK  | WUU_PF_WUF1_MASK |  \
                                 WUU_PF_WUF2_MASK  | WUU_PF_WUF3_MASK |  \
                                 WUU_PF_WUF4_MASK  | WUU_PF_WUF5_MASK |  \
                                 WUU_PF_WUF6_MASK  | WUU_PF_WUF7_MASK |  \
                                 WUU_PF_WUF8_MASK  | WUU_PF_WUF9_MASK |  \
                                 WUU_PF_WUF10_MASK | WUU_PF_WUF11_MASK | \
                                 WUU_PF_WUF12_MASK | WUU_PF_WUF13_MASK | \
                                 WUU_PF_WUF14_MASK | WUU_PF_WUF15_MASK | \
                                 WUU_PF_WUF27_MASK | WUU_PF_WUF28_MASK)
void WUU0_IRQHandler()
{

    /* The Power Manager will parse all the registered and enabled wake up sources
     * and determine if they triggered the WUU IRQ. If so, it will call each
     * wake up source's callback */
    status = PM_HandleWakeUpEvent();
    assert(status == kStatus_PMSuccess);
    (void)status;

    /* Clear WUU pin status flag */
    WUU_ClearExternalWakeUpPinsFlag(WUU0, WUU_PIN_FLAG_CLEAR_MASK);
}

5,实现的现象

        因为PTC6与按键相连,每次触发后都会唤醒设备,然后再次进入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值