打印
[N32WBxxx]

N32WB031广播数据更新

[复制链接]
1654|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhouchen605768|  楼主 | 2023-5-29 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件我们采用官方的开发板,可以从如下地址进行购买,价格比较实惠
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24884886751.32.60de6a4eHrSBGy&id=718540374563

实现软件基于官方SDK工程中的rdtss工程,实现流程如下:

使用特权

评论回复
评论
zhouchen605768 2023-5-29 22:11 回复TA
@cooldog123pp :N32WB031-STB开发板,上面淘宝链接的就是 
cooldog123pp 2023-5-29 20:51 回复TA
什么开发板! 
沙发
zhouchen605768|  楼主 | 2023-5-29 17:14 | 只看该作者
SDK默认的广播数据

ELFM460$HJ20ZPI$E0}}UQ2.png (58.6 KB )

ELFM460$HJ20ZPI$E0}}UQ2.png

使用特权

评论回复
板凳
zhouchen605768|  楼主 | 2023-5-29 17:19 | 只看该作者
0x03,0x16,0x0A,0x18.用手机APP对广播数据进行查看:




0x02,0x01,0x06---------------蓝牙BLE标识
0x03,0x16,0x0A,0x18-------------------广播数据
对于0x02,0x01,0x06可以用设置广播ibeacon方式进行去除:

2.png (165.46 KB )

2.png

使用特权

评论回复
地板
zhouchen605768|  楼主 | 2023-5-29 17:22 | 只看该作者
ibeacon模式修改

4.png (85.97 KB )

4.png

使用特权

评论回复
5
zhouchen605768|  楼主 | 2023-5-29 17:27 | 只看该作者
手机测试

5.jpg (40.26 KB )

5.jpg

使用特权

评论回复
6
zhouchen605768|  楼主 | 2023-5-29 17:31 | 只看该作者
定义需要更新广播数据的新内容

6.png (57.16 KB )

6.png

使用特权

评论回复
7
zhouchen605768|  楼主 | 2023-5-29 17:34 | 只看该作者
新广播数据内容为0x0A,0xff,0xff,0xff,0x55,0x11,0x22,0x33,0x44,0x66,0x55
配置消息定时器:创建定时器消息标识符

7.png (41.97 KB )

7.png

使用特权

评论回复
8
zhouchen605768|  楼主 | 2023-5-29 17:37 | 只看该作者
定时器标识符对应的处理函数

8.png (35.8 KB )

8.png

使用特权

评论回复
9
zhouchen605768|  楼主 | 2023-5-29 17:40 | 只看该作者
在广播开启函数中开启消息定时器,消息定时器的使用受睡眠影响,故需要禁止睡眠进入

9.png (41.35 KB )

9.png

使用特权

评论回复
评论
527757056 2023-12-4 09:39 回复TA
软件定时器使用时可以进入睡眠,不受影响。 因此不需要禁用睡眠进入。 
10
zhouchen605768|  楼主 | 2023-5-29 17:43 | 只看该作者
main函数处理

10.png (75.71 KB )

10.png

使用特权

评论回复
11
zhouchen605768|  楼主 | 2023-5-29 17:48 | 只看该作者
广播更新定时器处理:

11.png (64.37 KB )

11.png

使用特权

评论回复
12
zhouchen605768|  楼主 | 2023-5-29 17:50 | 只看该作者
更新广播数据的函数

12.png (385.56 KB )

12.png

使用特权

评论回复
13
zhouchen605768|  楼主 | 2023-5-29 17:53 | 只看该作者
测试验证.串口打印信息

13.png (52.51 KB )

串口打印信息

串口打印信息

使用特权

评论回复
14
zhouchen605768|  楼主 | 2023-5-29 17:55 | 只看该作者
上电之后10s进行广播数据的更新,

14.jpg (46.78 KB )

10后更新的广播数据

10后更新的广播数据

使用特权

评论回复
15
zhouchen605768|  楼主 | 2023-5-29 17:58 | 只看该作者
SDK测试代码

N32WB03x_SDK _ADV.rar

2.42 MB

使用特权

评论回复
16
ruicortech8888| | 2023-5-31 18:30 | 只看该作者
谢谢分享,学习了

使用特权

评论回复
17
HORSE7812| | 2023-10-13 17:55 | 只看该作者
谢谢分享,有个疑问:SDK中beacon中例子,每5秒钟改变广播消息,感觉没有走这样的流程。我把代码贴出来了:
/* Private functions ---------------------------------------------------------*/
void app_ble_connected(void);
void app_ble_disconnected(void);

void app_printf_ibeacon(uint8_t* uuid, uint16_t major, uint16_t minor, int8_t rssi)
{
    NS_LOG_INFO("\r\nUUID(hex):");
    for(uint8_t i=0;i<16;i++)
    {
        NS_LOG_INFO(" %02X",uuid);
    }
    NS_LOG_INFO("\r\nMajor: %d",major );
    NS_LOG_INFO("\r\nMinor: %d",minor );
    NS_LOG_INFO("\r\nRSSI at 1m: %d dBm\r\n",rssi );
}

void app_update_ibeacon(uint8_t* uuid, uint16_t major, uint16_t minor, int8_t rssi)
{
    uint8_t ibc_data[27] =  
                {0x1a,0xff,
                0x4c,0x00,0x02,
                0x15,
                0x10,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,
                0x12,0x34,
                0x56,0x78,
                0xCE};
    memcpy(&ibc_data[6],  uuid,  16);
    memcpy(&ibc_data[22], &major, 2);
    memcpy(&ibc_data[24], &minor, 2);
    ibc_data[26] = rssi;
   
    ns_ble_adv_data_set(ibc_data,27);
}




/**
* @brief  user message handler
* @param  
* @return
* @NOTE   
*/
void app_user_msg_handler(ke_msg_id_t const msgid, void const *p_param)
{

    switch (msgid)
    {
            case APP_CUSTS_TEST_EVT:
        {
            major = rand(); //random
            minor = rand(); //random
            app_update_ibeacon(uuid,major,minor,rssi);
            app_printf_ibeacon(uuid,major,minor,rssi);
            //repeat timer
            ke_timer_set(APP_CUSTS_TEST_EVT,TASK_APP,5000);
        }
        break;

            default:
                    break;
    }


}

/**
* @brief  ble message handler
* @param  
* @return
* @note   
*/
void app_ble_msg_handler(struct ble_msg_t const *p_ble_msg)
{
    switch (p_ble_msg->msg_id)
    {
        case APP_BLE_OS_READY:
            NS_LOG_INFO("APP_BLE_OS_READY\r\n");
            ke_timer_set(APP_CUSTS_TEST_EVT,TASK_APP,5000);
            break;
        case APP_BLE_GAP_CONNECTED:
            app_ble_connected();
            break;
        case APP_BLE_GAP_DISCONNECTED:
            app_ble_disconnected();
            break;

        default:
            break;
    }

}


直接在协议栈初始化完成后创建一个定时器来修改广播参数。

使用特权

评论回复
18
tcvsdonnnie| | 2023-11-2 10:23 | 只看该作者
马克

使用特权

评论回复
19
tcvsdonnnie| | 2023-11-16 12:38 | 只看该作者
请问有低功耗运行的例子吗

使用特权

评论回复
20
BIGGG| | 2023-12-1 18:19 | 只看该作者
HORSE7812 发表于 2023-10-13 17:55
谢谢分享,有个疑问:SDK中beacon中例子,每5秒钟改变广播消息,感觉没有走这样的流程。我把代码贴出来了: ...

您好 我想问一下 这个五秒改变广播信息的例子是在哪个文件里面的  我在官方给的N32WB031的例子里面找了半天 没看到这个例子  麻烦您回复一下  谢谢您了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

80

帖子

2

粉丝