蓝牙串口接受18位数据(包含包头1、包尾1、校验1)错位
STM32wb使用官网APP st_ble_sensor来用蓝牙升级固件
STM32WBA55G-DK1如何入门
如何使用STM32CubeIde生成BLE Audio工程
STM32WB10CC可以做MESH吗
在计时器触发的中断中使用了HAL_I2C_Mem_Read函数(I2C数据读取)导致代码卡死,这有什么解决办法吗?
bluenrg-lps HID keyboard 例程无法在pc正常工作
ST BLE Toolbox与STM32WBA Nucleo-64建立连接通信为什么不需要配对PIN码?
stm32wb55RG 蓝牙ble和ZigBee如何进行动态并行运行连接
STM32WBA52CG 使用BLE的时候,为啥SYSCLK只能设置到16MHz?
[md]
上图是一个蓝牙设备的电流图,灰色高亮区域的平均电流,我们称之为底电流,这部分和蓝牙射频没什么关系,只要芯片和外设成功进入低功耗就会降低,其他的尖峰是蓝牙发射广播造成的高电流。
底电流高是你的外设 或 主控没有成功进入低功耗。尖峰基本不可调(即蓝牙的发射电流),只能降低尖峰电流的个数,即降低链接间隔
有个其他小伙伴的程序,你试试看
static void Adv_Cancel(void)
{
/ USER CODE BEGIN Adv_Cancel_1 /
BSP_LED_Off(LED_GREEN);
/ USER CODE END Adv_Cancel_1 /
if (BleApplicationContext.Device_Connection_Status != APP_BLE_CONNECTED_SERVER)
{
tBleStatus ret = BLE_STATUS_INVALID_PARAMS;
ret = aci_gap_set_non_discoverable();
BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" STOP ADVERTISING Failed \r\n\r");
}
else
{
APP_DBG_MSG(" \r\n\r");
APP_DBG_MSG(" STOP ADVERTISING \r\n\r");
} }
/ USER CODE BEGIN Adv_Cancel_2 /
/ USER CODE END Adv_Cancel_2 /
return;
}
打开蓝牙:
static void Adv_Request(APP_BLE_ConnStatus_t NewStatus)
官方有关于进入STOP的例程,可以参考一下。
如何停止RF部分?并且在需要时重新打开?
厂家也有个STOP2 的例程,适合第二种情况,可以参考一下。
[md]在“射频 RF** 需要工作,不能关停**”模式下M4核进入stop2后,如果不停止BLE广播,则会有4mA左右的电流消耗,如果使用app_entry.c中Reset_Device()函数关闭蓝牙后,系统功耗降低至300uA,关闭之后蓝牙也不能再次打开了。
请问如何配置蓝牙可以做到低功耗广播?
所以只有停止RF工作(M0+ 进入低功耗),电流才会明显下降。如果想更低,可以将M4进入STOP2。
不停止蓝牙,是不能省下更多电流的。也就是说低功耗广播是不存在的。
请问有什么方法可以在不复位的情况下关闭并再次打开蓝牙?
[md]M4在进入stop4前执行了:
tBleStatus ret = BLE_STATUS_INVALID_PARAMS; ret = aci_gap_set_non_discoverable(); BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;
蓝牙被成功关闭,但是在唤醒后执行:
Adv_Request(APP_BLE_FAST_ADV);
却卡死,还需要哪里需要配置?
STM32Cube_FW_WB_V1.16.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer
但是降低广播间隔会影响连接APP速度,但是子要不是要求超快链接的,广播间隔改到500ms,甚至更高都可以。
我这边按照官方例程配置的,只要蓝牙打开就有持续6mA左右电流,发送广播的瞬间会更高,怎么配置可以消除这个持续的6mA?
配置部分根据官方教程:https://wiki.st.com/stm32mcu/index.php?title=Connectivity:STM32WB_BLE_STM32CubeMX&oldid=20002 来做的,不过没有使能UART跟踪和按钮功能,有其他的初始化或者配置方式吗?