【WCH蓝牙系列芯片】-基于CH585开发板—IO口(GPIO)外部中断唤醒蓝牙睡眠模式

news/2025/9/28 11:12:25/文章来源:https://www.cnblogs.com/good-fs/p/19116315

【WCH蓝牙系列芯片】-基于CH585开发板—IO口(GPIO)外部中断唤醒蓝牙睡眠模式

-------------------------------------------------------------------------------------------------------------------------------------

  在蓝牙从机可以通过宏定义处输入HAL_SLEPP=1,这样就可以开启蓝牙从机低功耗模式。

  可以新建一个文件,用来配置GPIO的外部中断初始化状态。

image

  添加上外部中断服务函数

#include "CONFIG.h"
#include "HAL.h"volatile uint8_t flag_wakeup = 0;
uint8_t i = 0;//GPIo的外部中断初始化
void EXTI0_pwr_INIT(void)
{GPIOB_ModeCfg( GPIO_Pin_4, GPIO_ModeIN_PU );   //部分GPIO中断引脚初始化GPIOB_ITModeCfg( GPIO_Pin_4, GPIO_ITMode_FallEdge ); // 下降沿中断PFIC_EnableIRQ( GPIO_B_IRQn );//开启GPIOB中断PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); //表示启用外设唤醒, GPIO 外设唤醒标识,Long_Delay:表示要配置长延迟模式
}//中断函数
__HIGH_CODE
__attribute__((interrupt("WCH-Interrupt-fast")))
void GPIOB_IRQHandler( void )
{
//    PRINT("%x \n",GPIOB_ReadITFlagPort());        //读GPIOA口中断状态
//    PRINT("%x \n",GPIOB_ReadITFlagBit(GPIO_Pin_4)); //读GPIO4口中断状态
//    PRINT("%x \n",GPIOB_ReadITFlagBit(GPIO_Pin_7)); //读GPIO7口中断状态flag_wakeup = 1;GPIOB_ClearITFlagBit( GPIO_Pin_4);//清中断
}

 

  在中断函数中,先检测是否有PB4的中断标志状态,配置为下降沿中断触发,在中断服务函数中,通过设置标志位flag_wakeup置1,这样就代表触发PB4的IO中断触发

  此时,IO的配置已经完程序,可以在蓝牙从机中的SLEEP.c文件中,进行IO中断后,进行唤醒的处理,在进入睡眠函数之前,进行中断标志位的判断,如果中断标志位置位后,检查到flag_wakeup == 1,此时就直接return 0;退出睡眠。 

image

  然后在SLEEP.c文件中,在添加中断函数的初始化,这样在低功耗模式下将GPIO外部中断函数初始化,配置GPIO中断唤醒源为PB4.

image

  在定义一个清除睡眠标志位操作的事件任务,在GPIO_WAKE_BLE_EVT中进行一秒一次的循环操作,判断当前flag_wakeup是否为1,如果为1,就清0,清标志位,这样在睡眠函数中,就不会直接return 0;退出睡眠。而是会一直保持低功耗模式。

image

  这样,整个gpio操作唤醒蓝牙低功耗模式流程就以完成。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DevExpress WinForms v25.2新功能预览 - 即将升级富文本编辑器控件功能

DevExpress WinForms v25.2新功能预览 - 即将升级富文本编辑器控件功能DevExpress WinForms 拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于…

网站建设的四个步骤网站建设岗位能力

​​​​下载 地址:https://nodejs.org/zh-cn/download/prebuilt-installer 安装包 开始安装 安装完成 给文件夹添加权限 创建两个文件夹 node_cache node_global 更新环境变量 修改环境变量,新的全局模块路径,这样在任何位置运行命令时都…

便宜做外贸网站天津网站建设流程

参考: https://www.cnblogs.com/kingsm/p/9849339.html 转载于:https://www.cnblogs.com/cwxwdm/p/10605529.html

linux怎么做网站有没有可以代理推广的平台

作者:老马引流定位:专业专注引流推广0X00 前言毫不客气的说,视频正日益成为社交媒体和营销的重要组成部分,有越来越多的人参与到视频剪辑当中来,而其中最为关键的就是视频剪辑软件。而市面上的视频剪辑软件当然也是五花…

做公众号的必备参考网站网站推广优化服务

好代码本身就是最好的文档。当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释。—— Steve McConnell目录字符串有很多操作函数,所以,这里我们专门用一节来介绍这些函数。建议:由于字符串函数较多,对于新…

网站建设的域名公司网站建设外包流程图

机器之心报道编辑:魔王、杜伟在近期举行的第 43 届国际信息检索年会 (ACM SIGIR2020) 上,Geoffrey Hinton 做了主题为《The Next Generation of Neural Networks》的报告。Geoffrey Hinton 是谷歌副总裁、工程研究员,也是 Vector Institute 的…

redis-事务操作

redis-事务操作redis事务本质上是一组命令的批处理,这组命令在执行过程中会被顺序性、一次性全部执行,只要没有出现语法错误, 这组命令在执行期间是不会被中断。 redis事务特性 redis事务仅保证了数据的一致性,不具…

【2025-09-26】奋斗逻辑

20:00让自己成为爱的磁铁,散发着温暖与光芒。用善良做你的引力,用宽容做你的磁场。吸引每一颗渴望爱的心,让他们感受到你的温柔给予,不要期待回报,因为爱本身就是最好的礼物。当你成为爱的源头,爱将如潮水般涌来…

【Linux基础知识系列:第一百四十篇】理解SELinux与系统安全 - 教程

【Linux基础知识系列:第一百四十篇】理解SELinux与系统安全 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

Elasticsearch 7.15索引模板介绍 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

关于修改 linux 系统中优先使用中文结构

1. 安装常用中文字体 首先确保系统安装了常用的中文字体,比如 Noto Sans CJK 或 WenQuanYi: sudo apt update sudo apt install fonts-noto-cjk fonts-wqy-zenhei fonts-wqy-microheifonts-noto-cjk:Google 的开源中…

河源市连平县建设局网站wordpress 文章最长

一、概述 本文基于spring-boot-starter-websocket简单的完成收发信息功能,使用注解形式进行实现。 二、相关配置 spring:2.0.2,jdk:1.8.202,maven:3.3.9 因为spring和maven有版本匹配的要求,请大家注意自己的版本是否匹配 三…

晋城购物网站开发设计手机购物网站开发

一、云计算 云计算起源仿照天空的云朵聚集,意为对大量服务器的远程管理。以便能对服务器做空间、资源的最大动态协调利用和降低操作执行命令的复杂度。 二、云计算衍生下的服务 在服务器以一种云的形式存在,衍生除了很多服务提供,以便用户可以…

网站开发技术流程商标查询官网入口

Linux 系统管理员要求对系统进行管理,备份等操作,linux程序员需要掌握c,c,java,php,jsp等 Linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat,mysql… 书籍介绍:鸟哥LINUX私房菜,LINUX编程从入门到精通,li…

Discord桌面应用远程代码执行漏洞分析

本文详细分析了Discord桌面应用中存在的远程代码执行漏洞,包括缺失上下文隔离、iframe嵌入XSS和导航限制绕过三个漏洞的组合利用。作者通过覆盖JavaScript内置方法干扰Node.js模块执行,最终实现任意代码执行。漏洞已…

DRL模型训练:原始奖励函数记录以及绘制

一些参考图片:1. 使用sb3库, 调用callback,会记录每个episode结束时的reward; 使用tensorboard记录的rollout/ep_rew_mean,会自动每4个ep平均,并进行平滑,得到的不是原始数据。 from stable_baselines3.common.ca…

python的批量赋值语法

python的批量赋值语法 漫思

丽江市网站建设制作学校校园网网站建设预算

文章目录 1. 基于神经网络计算心理健康程度2. 添加激活函数的神经网络计算3. 使用神经网络预测小胖是否会变胖4. 激活函数选择的讨论5. 神经网络的设计6. 深度线性模型的表达能力线性模型7. 神经网络退化 主要讨论的内容 什么是人工神经网络,相关计算反向传播算法的…

泊头市网站建设价格百度网站排名 查询

JAVA代码编写 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示…