ST17H66低功耗蓝牙SOC开发(7)—— simpleBleCentral工程讲解(下)

价绍simpleBleCentral工程,BLE Host(主机)角色。本篇介绍完整的主机与从机连接工程及数据收发。
摘要由CSDN通过智能技术生成

2、连接过程

2.1 初始化

对主机各个参数进行初始化后,注册simpleBLERoleCB回调,simpleBLERoleCB里面的simpleBLECentralEventCB是设备的事件回调,初始化后会进入GAP_DEVICE_INIT_DONE_EVENT状态,主机开始扫描。

    case GAP_DEVICE_INIT_DONE_EVENT:
    {
        osal_set_event(simpleBLETaskId,CENTRAL_INIT_DONE_EVT);
    }
//------------------------------------------
    if (events & CENTRAL_INIT_DONE_EVT)
    {
        LOG("BLE as central Init Done \r\n");
        simpleBLECentral_DiscoverDevice();
        return (events ^ CENTRAL_INIT_DONE_EVT);
    }
//------------------------------------------
static void simpleBLECentral_DiscoverDevice(void)
{
    simpleBLEScanRes = simpleBLEScanIdx = 0;
    osal_memset(simpleBLEDevList,0,sizeof(SimpleClientADV_ScanData)*DEFAULT_MAX_SCAN_RES);
    bStatus_t stu = GAPCentralRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
                                                   TRUE/*DEFAULT_DISCOVERY_ACTIVE_SCAN*/,      // passive scan
                                                   FALSE/*DEFAULT_DISCOVERY_WHITE_LIST*/ );
    AT_LOG("simpleBLECentral_DiscoverDevice Return Value :%d\n",stu);
}

2.2  发现设备

设备初始化进入搜索状态后,开始扫描范围内的BLE设备,协议层每发现一个设备会返回一个GAP_DEVICE_INFO_EVENT事件,接着对返回的设备信息进行处理:如果发现的是新设备,则将设备信息添加在发现设备表里面;如果是已经发现过的设备,则将该设备在设备表里的信息进行更新。

    case GAP_DEVICE_INFO_EVENT:
    {
        // only save connectable adv
        if (pEvent->deviceInfo.eventType != GAP_ADRPT_ADV_IND
                && pEvent->deviceInfo.eventType != GAP_ADRPT_ADV_DIRECT_IND
                && pEvent->deviceInfo.eventType != GAP_ADRPT_SCAN_RSP)		
            break;
		simpleBLEAddDeviceInfo( pEvent );
    }

2.3 发现设备完成

直到发现的设备数量达到设置的最大值,或者扫描的时间达到设置的扫描间隔,完成这一次的扫描

周期。协议层返回GAP_DEVICE_DISCOVERY_EVENT事件。

    case GAP_DEVICE_DISCOVERY_EVENT:
    {
		AT_LOG("GAP_DEVICE_DISCOVERY_EVENT\n");
		// discovery complete
		// initialize scan index to last device
		simpleBLEScanIdx = simpleBLEScanRes;

		for(unsigned i = 0; i < simpleBLEScanRes ; i++)
		{
			AT_LOG("[Dev %02d/%02d] ", i+1,simpleBLEScanRes );
			AT_LOG("AdvA [T%02X] :%02X:%02X:%02X:%02X:%02X:%02X ",
					simpleBLEDevList[i].AddrType,\
					simpleBLEDevList[i].addr[0],\
					simpleBLEDevList[i].addr[1],\
					si
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
ST17H66是一款低功耗蓝牙System on Chip(SoC开发平台。低功耗蓝牙(Low Energy Bluetooth,LE Bluetooth)技术可以在设备之间进行低功耗的无线通信,适用于物联网(Internet of Things,IoT)和传感器应用。ST17H66 SoC具有以下特点和功能。 首先,ST17H66拥有低功耗特性,可以显著延长设备的电池寿命。他采用了BLE技术,该技术相比传统蓝牙技术具有更低的功耗。在低功耗模式下,设备只需要非常少的能量来保持通信,可以有效地减少能耗并提高设备的使用时间。 其次,ST17H66具有强大的通信性能。它支持蓝牙5.1标准,具有更稳定和高速的数据传输能力。无论是传输数据、收发消息还是进行音频传输,ST17H66都可以提供可靠的连接和高质量的通信体验。 此外,ST17H66拥有丰富的接口和功能。它提供了多达,方便开发人员根据应用需求进行灵活设计和开发。此外,它还集成了一些传感器和基础设施,使开发过程更加简单和高效。 最后,ST17H66还具有高安全性。它支持数据加密和认证机制,可以保护用户数据的隐私和安全。这对于涉及敏感信息的应用非常重要,如金融、医疗和智能家居等领域。 总结来说,ST17H66低功耗蓝牙SoC开发平台具有低功耗、高通信性能、丰富的接口和功能以及高安全性等特点。它是一个可靠、高效和灵活的解决方案,适用于各种物联网和传感器应用的开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WHMTBYY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值