当前位置: 首页 > news >正文

CH5xx BLE低功耗使用GPIO唤醒

在BLE例程中开启HAL_SLEEP低功耗后是通过RTC唤醒来实现的,那么需要加入GPIO唤醒需怎么添加呢,其实很简单:只要添加PM例程中的GPIO唤醒部分即可,睡眠部分也需要处理下。

GPIO只需要初始化和增加中断服务函数即可。

#include "gpio_wake.h"

volatile uint8_t wake_flag=0;

void GpioWakeInit()
{
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
GPIOA_ITModeCfg(GPIO_Pin_5, GPIO_ITMode_FallEdge); // 下降沿唤醒
PFIC_EnableIRQ(GPIO_A_IRQn);
PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);
}


__INTERRUPT
__HIGH_CODE
void GPIOA_IRQHandler(void)
{
wake_flag=1;
GPIOA_ClearITFlagBit(GPIO_Pin_5);
}

睡眠函数处理:

uint32_t CH59x_LowPower(uint32_t time)
{
#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)volatile uint32_t i;uint32_t time_sleep, time_curr;unsigned long irq_status;if(wake_flag){return 2;}// 提前唤醒if (time <= WAKE_UP_RTC_MAX_TIME) {time = time + (RTC_MAX_COUNT - WAKE_UP_RTC_MAX_TIME);} else {time = time - WAKE_UP_RTC_MAX_TIME;}SYS_DisableAllIrq(&irq_status);time_curr = RTC_GetCycle32k();// 检测睡眠时间if (time < time_curr) {time_sleep = time + (RTC_MAX_COUNT - time_curr);} else {time_sleep = time - time_curr;}// 若睡眠时间小于最小睡眠时间或大于最大睡眠时间,则不睡眠if ((time_sleep < SLEEP_RTC_MIN_TIME) || (time_sleep > SLEEP_RTC_MAX_TIME)) {SYS_RecoverIrq(irq_status);return 2;}RTC_SetTignTime(time);SYS_RecoverIrq(irq_status);#if(DEBUG == Debug_UART1) // 使用其他串口输出打印信息需要修改这行代码while((R8_UART1_LSR & RB_LSR_TX_ALL_EMP) == 0){__nop();}#endif// LOW POWER-sleep模式if(!RTCTigFlag){LowPower_Sleep(RB_PWR_RAM2K | RB_PWR_RAM24K | RB_PWR_EXTEND | RB_XT_PRE_EN );if(wake_flag){DelayUs(200);}HSECFG_Current(HSE_RCur_100); // 降为额定电流(低功耗函数中提升了HSE偏置电流)i = RTC_GetCycle32k();while(i == RTC_GetCycle32k());return 0;}
#endifreturn 3;
}

主循环添加程序官网gpio唤醒:

__HIGH_CODE
__attribute__((noinline))
void Main_Circulation()
{while(1){TMOS_SystemProcess();if(wake_flag){PRINT("pa5 wake\n");wake_flag=0;}}
}

 

http://www.jsqmd.com/news/28335/

相关文章:

  • 2025 年 11 月美白贴片面膜,抗衰老贴片面膜,补水贴片面膜厂家最新推荐,高性能与可靠性兼具的优质品牌
  • 启动的时候出现错误 (exit code -1073741819 (0xc0000005) )?报错0xC0000005的可能原因?
  • vscode判断当前是否为debug模式
  • 计算机网络学习分享1
  • 深浅拷贝
  • FFmpeg开发笔记(八十七)采用Kotlin的手机开源播放器VLC-Android
  • AI + Excel:公式生成、数据分析、图表一键搞定
  • 清华大学AI领导力AI时代领导力AI变革领导力培训师培训讲师专家唐兴通讲授数字化转型人工智能组织创新实践领导力国央企国有企业金融运营商制造业 - 教程
  • CryptoNet:一个高效、安全的加密库
  • Sqlserver Stuff+for xml+values 记录下,将多列数据有数据的合并为一个单元格
  • 2025 年精华液厂家企业品牌推荐排行榜,烟酰胺精华液,富勒烯精华液,复合酸精华液,抗衰老精华液,修护精华液,抗氧化精华液,保湿精华液,液态精华液公司推荐
  • 2025 年 11 月烟酰胺精华液,修护精华液,保湿精华液厂家最新推荐,技术实力与市场口碑深度解析
  • 2025 年 11 月富勒烯精华液,抗衰老精华液,抗氧化精华液厂家最新推荐,精准检测与稳定性能深度解析
  • 2025 年 11 月云南环保咨询,云南环评报告咨询,云南环评手续咨询最新推荐:精准检测与稳定性能深度解析
  • 2025 年 11 月云南环评资质咨询,云南环评批复咨询,云南环评手续咨询最新推荐:榜单透视与选购要点
  • 2025 年 11 月云南环保咨询,云南环评报告咨询,云南环评手续咨询最新推荐:聚焦高端定制需求与全案交付能力
  • 2025年11月上海装修公司排行榜:十强服务与性价比全面对比
  • 2025年11月上海装修公司口碑榜:千州领衔全维度对比评测
  • 2025 年 11 月云南环评资质咨询,云南环评报告咨询,云南环评批复咨询最新推荐:技术实力与市场口碑深度解析
  • 2025年11月上海装修公司实力榜:十家口碑数据横向评测
  • 2025年11月上海装修公司榜单:10强对比看服务与质保差异
  • 2025年11月上海装修公司综合榜:十家口碑排行深度评测
  • 从一个按钮实例入门CSS in JS之styled-components
  • 第二次算法实践作业
  • 致成熟的Java团队:AI浪潮中,无需换栈,只需“增量升级”
  • 统计表类图形的最大面积
  • 一对一视频源码,提高可扩展性的常用设计模式 - 云豹科技
  • 20251101 之所思 - 人生如梦
  • 深度学习基础理论————常见评价指标以及Loss Function - Big-Yellow
  • 模型量化操作————GPTQ和AWQ量化 - Big-Yellow