请教!使用蓝牙NOTIFY功能输出字符串到手机端,手机端收不到数据,并且有时蓝牙会断。

我设计的是 来一次外部中断采集一次RTC时间数据,然后发送时间数据到手机端,字符串长度是23。手机端无数据发送。我试了一下把NOTIFY的数据长度改成20就可以输出了,但是数据长度不够。求解答!

1648886419329810.png

此图为串口打印出来的,显示数据正常

image.png

手机端NOTIFY

image.png


image.png

image.png


使用我们的例程,默认一次notify的长度最大是20字节,如果想传输更多的数据,那么将config.h中的BLE_BUFF_MAX_LEN 改为最大值,将SIMPLEPROFILE_CHAR4_LEN改为实际发送的字节数,手机端需要交互mtu,改为247,最大传输244字节。

使用ble调试助手的话,连接后,点击右上角的三个点,选择修改mtu,输入即可。


您好!上面的那个问题已解决。还有个问题 根据上面实现的功能,想进一步实现低功耗,无外部中断则睡眠,如何实现?

目前只打开了引脚唤醒和SLEEP = TRUE.

image.png


打开Lowpowwe_Idle 蓝牙直接搜不到了

image.png


睡眠模式有四种,可根据需求选择相应的模式:

1.png


在编译器的宏定义使用HAL_SLEEP = 1,开启睡眠,可以尝试在sleep函数里加一个字符的打印,验证是否有睡下去,我们这里尝试是没有问题的;或者通过电流的测量也可以验证是否睡眠成功。


只有登录才能回复,可以选择微信账号登录