CH32V208蓝牙从机sleep模式下功耗测试
本测试基于CH32V208W的开发板;蓝牙从机模式;使用程序BLE_UART
在进行功耗测试的时候尽量去除额外耗电器件,将开发板上的VDD于VIO相连接,测功耗时直接给VDD供电。
将会对500ms,1s,2s,5s广播间隔进行测试;
测试前对程序先进行修改:在工程配置处将HAL_SLEEP的宏的配置置为TRUE;

将GPIO配置为和休眠期间的外部电平接近的输入上拉/输入下拉,固定电平以减小漏电;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //enable clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //enable clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //enable clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //enable clock
GPIO_InitTypeDef GPIO_InitStructure = {0}; //gpio init struct
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; //gpio pin
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //gpio mode
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //gpio speed
GPIO_Init(GPIOA, &GPIO_InitStructure); //gpio init
GPIO_Init(GPIOB, &GPIO_InitStructure); //gpio init
GPIO_Init(GPIOC, &GPIO_InitStructure); //gpio init
GPIO_Init(GPIOD, &GPIO_InitStructure); //gpio init
广播间隔及开关广播修改处:
// What is the advertising interval when device is discoverable (units of 625us, 80=50ms)
#define DEFAULT_ADVERTISING_INTERVAL 1600// 1600
修改此处的1600即可注意单位时间是625us,此时1600即为1s
uint8_t initial_advertising_enable = TRUE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), &initial_advertising_enable);
此处为初始化广播的位置将TRUE改为FALSE就可以关闭广播了
对广播间隔为500ms时进行功耗测试:

对广播间隔为1s时进行功耗测试:

对广播间隔为2s时进行功耗测试:

对广播间隔为5s时进行功耗测试:

关闭广播进行测试:

功耗汇总表如下

注意事项:
CH32V208的在测功耗时:一般情况下是只要置1使能HAL_SLEEP宏,让协议栈管理休眠就好。
将不需要的TMOS事件循环关掉,关闭方法可以是直接注释掉相应的代码块,或者使用tmos_stop_task(),或者使用各种特定的方式关闭库中的循环,要看具体问题;
将GPIO配置为和休眠期间的外部电平接近的输入上拉/输入下拉,固定电平以减小漏电。
另附:
CH32V208的性能更为强大资源更为丰富;如果需要功耗表现更好的BLE系列MCU可以选择沁恒的CH592、CH582(这两款资源也较为丰富)。
CH32V208蓝牙从机sleep模式下功耗测试的更多相关文章
- Debug模式下,测试app后缀名“-测试”
target-->buildsetting-->user-defined 新建一个和上图尖括号一样的字符 如下图: 在debug中填入后缀名,然后在debug模式下运行程序,会发现debu ...
- redis在物理机部署模式下如何进行资源[cpu、网卡]隔离
上周末晚上运营做直播,业务代码不规范,访问1个redis竟然把1台服务器的网卡打满了,这台服务器上的其他redis服务都受到了影响.之前没有做这方面的预案,当时又没有空闲的机器可以迁移,在当时一点办法 ...
- win10的VMware虚机host-only模式下,虚拟机无法ping通物理机,而物理机能ping通虚机
1.打开控制面板—->Windows防火墙(win10操作系统) 2.点击最上面的”允许应用或功能通过xxxxx” 3.勾上上图的“文件和打印机共享” 然后点确定.
- 24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
- Fabric1.4 链码开发,开发模式下的测试
关闭之前已启动的网络环境 sudo docker-compose -f docker-compose-cli.yaml down 进入devmode目录: cd ~/go/src/github.co ...
- Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机
参考原文(在windows环境下):http://hi.baidu.com/george_gly/item/5183b76e5a79e49ac5d2498b nat网络模式下,虚拟机可以访问外网.访问 ...
- x86架构:实模式下的中断
https://www.cnblogs.com/Philip-Tell-Truth/p/5317983.html 这里有详细的过程说明.文字很多,为了方便阅读和理解,提炼了一些要点后归纳.整理了如 ...
- ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务
★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259 ...
- ASM:《X86汇编语言-从实模式到保护模式》第9章:实模式下中断机制和实时时钟
中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫N ...
- Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器
<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫Lei ...
随机推荐
- springboot线程池的使用方式2
一.简单介绍 方式1:Executors.newCachedThreadPool线程池.Executors有7种不同的线程池. private static final ExecutorService ...
- vue网站换色功能
vue.config.js里全局配置mixin.scss: 使用: 判断 sessionStorage 中的 type 是否为空,如果为空的话,就给默认的颜色(页面初始化的颜色),如果不为空的话就将对 ...
- K8s 网关选型血泪史
Sealos 公有云几乎打爆了市面上所有主流的开源网关,本文可以给大家很好的避坑,在网关选型方面做一些参考. Sealos Cloud 的复杂场景 Sealos 公有云上线以来,用户呈爆发式增长,目前 ...
- 设备共享分配:虚拟化和 SRIOV
SRIOV 简介 OpenStack 自 Juno 版本开始引入 SRIOV,SRIOV(Single Root I/O Virtualization) 是将 PCIe(PCI) 设备虚拟化成虚拟 P ...
- Nacos源码 (2) 核心模块
整体架构 服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能 配置管理:实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能 元数据管理:提供元数据C ...
- P5728 【深基5.例5】旗鼓相当的对手
1.题目介绍 2.题解 2.1 二维数组 思路 主要熟悉vector创建二维数组的方法 vector<vector> ans(N,vector(3)); 这里第一个元素表明数组大小,第二个 ...
- 【C++】const 常类型
常引用 格式:const 类型说明符 &引用名 注意:常引用所引用的对象不能修改 常对象 格式:类名 const 对象名 或 const 类名 对象名 注意:常对象其数据成员在生存期内不能修改 ...
- [转帖]【SQL SERVER】锁机制
https://www.cnblogs.com/WilsonPan/p/12618849.html 锁定是 SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制. 基 ...
- [转帖]umount -fl用法
https://www.cnblogs.com/xingmuxin/p/8446178.html umount, 老是提示:device is busy, 服务又不能停止的.可以用"umou ...
- [转帖]Linux字符截取命令-cut
概述 cut是一个选取命令,.一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的. 语法 cut [-bn] [file] 1 或 cut [-c] [file] ...