首页 > 其他分享 >CH57x/CH58x/CH59x获取从机广播信息

CH57x/CH58x/CH59x获取从机广播信息

时间:2024-05-31 17:55:40浏览次数:27  
标签:CH57x deviceInfo advtype CH59x 广播 pEvent 从机 PRINT flag

有时需要通过主机设备(MCU非手机)获取从设备的广播信息例如广播包,MAC地址,扫描应答包等

以下的程序片段及功能实现是在WCH的CH59X的observer例程上实现的;

1、获取广播包

所有的函数在库函数中都可以找到,具体实现函数如下:

 case GAP_DEVICE_INFO_EVENT:
        {
            ObserverAddDeviceInfo(pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType);
        //获取广播信息
            advtype_flag = pEvent->deviceInfo.eventType;
                  // PRINT("广播类型:%d\n",advtype_flag);
                   if(advtype_flag == 0)
                   {
                       len=pEvent->deviceInfo.dataLen;
                    // PRINT("广播数据:");
                     for(uint8_t i=0 ;i<len;i++)
                     {
                       advdata[i]= pEvent->deviceInfo.pEvtData[i];
                       //PRINT("%02x",advdata[i]);
                       PRINT("%c",advdata[i]);
                     }
                     PRINT("\n");
              }
        }
        break;

这里的判断(if(advtype_flag == 0))是对广播类型的筛选,有几种不同的广播类型;这里筛选了第一种普通广播:

 2、MAC地址

            if(pEvent->discCmpl.numDevs > 0)
            {
                int i, j;
                // Increment index of current result (with wraparound)
                for(j = 0; j < pEvent->discCmpl.numDevs; j++)
                {
                    PRINT("Device %d : ", j);
                    for(i = 0; i < 6; i++)
                    {
                        PRINT("%x ", pEvent->discCmpl.pDevList[j].addr[i]);
                    }
                    PRINT("\n");
                }
            }

个人学习分享;如有问题请指正

转载请保留出处;

标签:CH57x,deviceInfo,advtype,CH59x,广播,pEvent,从机,PRINT,flag
From: https://www.cnblogs.com/frontier/p/18224222

相关文章

  • 【WCH蓝牙系列芯片】-基于CH582开发板—主机连接从机(128bitUUID)实现通信
    -------------------------------------------------------------------------------------------------------------------------------------  在之前一篇主机枚举从机所有服务和特征的博客中,介绍主机连接从机的流程,并且枚举从机的服务,进行通信操作。在本篇博客中,基于CH582......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—主机枚举从机所有服务和特征
    -------------------------------------------------------------------------------------------------------------------------------------在使用沁恒的CH582蓝牙芯片的过程中,有时需要主机去连接蓝牙从机进行通信,主机在使用过程中工作流程是: 1、 蓝牙初始化完成后,开始扫描......
  • CH57x/CH58X/CH59X/CH32F/V208OTA使用说明
    目前提供了两种OTA升级方式,方式一:带库升级;每次升级可以带着库一起进行升级(带库升级适用于flash较大的芯片)方式二:固定库升级;升级时库不会随着升级而升级(适用于flash不够用时)方式一:升级时需要同时烧录这三个固件:(可以使用isp工具同时烧录也可以使用合并工具将三个工程合并后再烧......
  • 低功耗蓝牙系列芯片CH57x,CH58x,CH59x实现蓝牙多通道配对/回连同一台电脑或多台电脑实
    依旧以老朋友CH583为例,我们随便打开一个HID例程,还是以HID_Keyboard例程做讲解:1、直奔主题到我们的库函数初始化函数中去,红圈圈中的SNVAddr配置信息为我们此次配对连接后所获取到的信息存储的地址区,配对信息中包含:对方MAC地址,设备信息,协商所得IRK密钥等关键信息,都会保存到SNVAddr......
  • CH592 CH582 CH573从机例子添加RSSI信息获取
    以CH582HID_Mouse为例,新增RSSI获取和打印步骤如下 LIB库已经提供了回调接口,只需要在程序中定义函数体实现   连接成功后启动任务   代码编译 烧录到CH582种运行代码 连接成功后打印RSSI和handle值 ......
  • CH582/CH592_EVT中RF_Device(从机)例程详解
    依旧以CH582例程做讲解,CH592与CH582接口部分一致,其他地方大同小异。RF_Device例程路径: 1、main函数初始化配置 2、RF参数初始化 3、上电后启动绑定回连任务  4、RF_DMA初始化  5、RF绑定回调任务  6、数据发送接口 7、定时器测试发送数据到对......
  • CH57x,CH58x,CH59x芯片_SPI借助GPIO中断完成中断传输
    受其他项目的启发,如果IO充裕,且在SPI主机与SPI从机均可以自行编程的情况下,可以尝试在4线SPI的基础上增加两根GPIO线,通过IO中断的形式通知对方进行收数据;非SPI中断形式,以两颗CH582通讯为例,1、主机程序:voidmain(){SetSysClock(CLK_SOURCE_PLL_60MHz);GPIOA_ModeCfg......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—主机通过从机蓝牙名称建立连接
    -------------------------------------------------------------------------------------------------------------------------------------  在蓝牙主机与蓝牙从机建立连接的方式有很多种,默认是通过MAC地址建立连接,这里讲解以蓝牙名称建立连接的方式。先获取到从机的扫描......
  • CH59X/CH58X/CH57X 片上flash的使用
    以CH592F为例;在使用时先看手册对code和data区的划分一、DataFlash的读写的操作 先看几个操作dataflash的API(读擦写);/***@briefreadData-Flashdatablock**@paramStartAddr-Addressofthedatatoberead.//要读取的数据的地址,传入的的地址是相对地址所......
  • 人工智能算法原理与代码实战:从机器学习到人工智能
    1.背景介绍人工智能(ArtificialIntelligence,AI)是计算机科学的一个分支,研究如何让计算机模拟人类的智能。人工智能的目标是让计算机能够理解自然语言、认识环境、学习新知识、解决问题、作出决策等。人工智能的发展涉及到多个领域,包括机器学习、深度学习、计算机视觉、自然语言处......