本篇讲述富芮坤FR3068x-C蓝牙使用。FR3068E-C芯片双核架构,其中一颗独立的蓝牙核做蓝牙通讯使用。FR306x-C 符合蓝牙 V5.3 标准,支持BR、EDR、BLE等多种模式,支持蓝牙多主多从多连接。
      这里以lvgl_demo工程为例进行梳理讲解。
      在app_config.h里可以看到一些宏定义。
      从main函数开始,在app_task_init函数里创建了app_task任务,任务里app_btdm_init初始化了蓝牙协议栈,BTDM_STACK_ENABLE_BT宏使能,在host_btdm_start可以看到创建host_btdm_task任务,任务里调用了host_ready_cb,其发送了APP_TASK_EVENT_HOST_INITED事件。在app_task_event_handler任务里接收该事件,并执行app_lvgl_init(); app_btdm_start(); ,即lvgl初始化与蓝牙启动。在app_btdm_start函数下调用app_ble_init(); app_bt_init(); user_bt_init(); app_ble_advertising_start();。我们应用会用到app_ble.c的服务UUID宏SP_SVC_UUID,特征属性UUID宏SP_CHAR1_TX_UUID。蓝牙广播adv_data包含广播名称,根据需要可以修改。gap_callback为蓝牙事件回调,包含蓝牙连接、断开、广播开始、广播结束等。
      蓝牙广播内容如下:
1_蓝牙广播.png
      蓝牙服务、特征属性UUID如下:
2_蓝牙服务特征.jpg

      至此,初步梳理了蓝牙的使用流程。