NRF52832学习笔记(38)——修改发射功率
一、背景
蓝牙接收信号强度 RSSI 的直接影响因素就是蓝牙信号的发射功率。发射功率就是你所使用的设备(开发板、手机)所发射出来给主机或从机设备的信号强度。同时在实际应用当中,时常也需要修改蓝牙的发射功率,以达到省电的目的。
1.1 发射功率范围
(最大)4dB、(默认)0dB、-4dB、-8dB、-12dB、-16dB、-20dB、-30dB、(最小)-40dB
nRF51系列最小值-30dB
nRF52系列最小值-40dB
1.2 发射功率作用
发射功率越大,信号越强,距离越远,功耗越大。
发射功率越小,信号越弱,距离越近,功耗越小。
发射功率只是影响通信距离的因素之一,通信距离还与环境、天线选型、天线电路匹配等因素有关。
二、修改实际发射功率
2.1 相关函数
/**@brief Set the radio's transmit power.** @param[in] role The role to set the transmit power for, see @ref BLE_GAP_TX_POWER_ROLES for* possible roles.* @param[in] handle The handle parameter is interpreted depending on role:* - If role is @ref BLE_GAP_TX_POWER_ROLE_CONN, this value is the specific connection handle.* - If role is @ref BLE_GAP_TX_POWER_ROLE_ADV, the advertising set identified with the advertising handle,* will use the specified transmit power, and include it in the advertising packet headers if* @ref ble_gap_adv_properties_t::include_tx_power set.* - For all other roles handle is ignored.* @param[in] tx_power Radio transmit power in dBm (see note for accepted values).** @note Supported tx_power values: -40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm.* @note The initiator will have the same transmit power as the scanner.* @note When a connection is created it will inherit the transmit power from the initiator or* advertiser leading to the connection.** @retval ::NRF_SUCCESS Successfully changed the transmit power.* @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.* @retval ::BLE_ERROR_INVALID_ADV_HANDLE Advertising handle not found.* @retval ::BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.*/
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(uint8_t role, uint16_t handle, int8_t tx_power));
第一个参数设置对应角色的功耗:
BLE_GAP_TX_POWER_ROLE_ADV:广播发射功率
BLE_GAP_TX_POWER_ROLE_SCAN_INIT:扫描或发起者功率
BLE_GAP_TX_POWER_ROLE_CONN:连接时的功率
对于主机(BLE Central)来说,connect的功率是继承scan的发射功率;对于从机(BLE Peripheral)来说,connect的功率是继承advertising功率。第二个参数设置为广播的连接句柄:BLE_ADVERTISING_DEF(m_advertising); 定义实体
第三个参数设置功率的层级:-40dBm, -20dBm, -16dBm, -12dBm, -8dBm, -4dBm, 0dBm, +3dBm and +4dBm
2.2 添加代码
在 GAP 初始化或广播初始化的时候,通过 sd_ble_gap_tx_power_set()
设置发射功率。
2.3 最大档和最小档发射功率比较
-35dB是最大档发射功率,-76dB是最小档发射功率。
2.4 其他SDK版本
或者,根据SDK版本不同,可能是以下情况:
/**@brief Set the radio's transmit power.** @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm).** @note The -30dBm setting is only available on nRF51 series ICs.* @note The -40dBm setting is only available on nRF52 series ICs.** @retval ::NRF_SUCCESS Successfully changed the transmit power.* @retval ::NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.*/
SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
三、修改广播中显示的发射功率
查看广播:
0x0A
就是 广播中AD Type:BLE_GAP_AD_TYPE_TX_POWER_LEVEL
• 由 Leung 写于 2021 年 8 月 24 日
• 参考:nrf52832学习笔记(3)设置发射功率
nRF52832 ------增强广播功率为4db
NRF52832学习笔记(38)——修改发射功率相关推荐
- nrf52832学习笔记(3)设置发射功率
只要调用下面api就可以设置发射功率 /** @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30 ...
- nrf52832 学习笔记(三)蓝牙从机广播
nrf52832 学习笔记(三)蓝牙从机广播 蓝牙从机要想被主机连接,首先需要发送广播信息,周围主机通过扫描广播信号,根据从机的广播信息,判断是否连接. 蓝牙协议栈初始化 不管是主机还是从机,要想使用 ...
- nrf52832 学习笔记(七)蓝牙协议层级理解
nrf52832 学习笔记(七)蓝牙协议层级理解 本文主要由一下几篇文档摘录汇总而成 ,如有错误欢迎斧正 da14531 蓝牙协议文档 深入浅出低功耗蓝牙(BLE)协议栈 低功耗蓝牙ATT/GATT/ ...
- nrf52832 学习笔记(五)蓝牙主从机连接和连接参数更新
nrf52832 学习笔记(五)蓝牙主从机连接和连接参数更新 主机连接 nrf52832 SDK中主机连接从机需要使用 sd_ble_gap_connect(ble_gap_addr_t const ...
- nrf52832 学习笔记(六)配对和绑定
nrf52832 学习笔记(六)配对和绑定 配对绑定推荐博客低功耗蓝牙配对绑定解读和实践 蓝牙在配对之前都是明文通信的,也就是说主从机之间传输的数据包可以被第三方抓取分析逆向,而且如果没有配对,谁都可 ...
- NRF52832学习笔记(40)——RFID RC522使用
一.简介 MF RC522 是应用于 13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.是 NXP 公司针对"三表"应用推出的一款低电压.低成本.体积小的非接触式读写 ...
- nrf52832 学习笔记(一)开发资料汇总
nrf52832 学习笔记(一)开发资料汇总 协议栈和SDK下载地址 nordic官方的sdk分为ncs(nRF Connect SDK)和sdk17(nRF5 SDK)两种,区别是: sdk17不会 ...
- nrf52832 学习笔记(二)SDK框架分析
nrf52832 学习笔记(二)SDK框架分析 个人对SDK框架的一些理解,如有错误欢迎斧正. flash 分区 在不包含DFU的情况下,nrf52832 flash划分为: MBR 0x000000 ...
- nrf52832 学习笔记(四)蓝牙主机扫描
nrf52832 学习笔记(四)蓝牙主机扫描 从机发出广播后就需要主机进行扫描了,主机扫描之前和从机一样,也需要协议栈初始化.GAP初始化.GATT初始化,这些和从机类似,参考 nrf52832 学习 ...
最新文章
- [转]DotNet for Symbian平台 (Nokia,Sony,Motorola等手机)
- System.Threading.Timer类的TimerCallback 委托
- Mysql雨松工具类使用
- Android中解析XML---数据存储
- 微信小程序图片上传(文字识别)
- mongodb检查点_Mongodb 日志原理和操作
- 软件“美不美”,UI测试一下就知道
- 【Android】再来一篇Fragment懒加载(只加载一次哦)
- 一只青蛙跳向三个台阶_9. 变态跳台阶
- JUC与JVM并发编程学习笔记04
- 不知如何走的立交桥(西直门交警一文背景)
- python收益风险点图_AAVE当前风险与收益是否有偏差?如何评估DeFi投资组合?
- 6. 抹平差异,统一类型转换服务ConversionService
- 2006年十二生肖开运大预言
- TCPDF 解决中文乱码的问题
- 做好异常处理,防止无故翻车
- 知物由学 | 再造巴别塔,我们如何进行NLP跨语言知识迁移?
- 计算机考研专业课考研真题,计算机考研专业课真题.docx
- Roson的Qt之旅 #129 QNetworkProxyFactory(网络代理工厂)
- 还在手动测试?那是那还不知道Python自动化测试的强大之处