SYD8811使用开发板,代码使用的是透传例程:Source Code\SYD8811_ble_peripheral\1.SYD8811_BLE_UART_notifyen_open_power

FR801XH芯片丝印如下:

两块板子实物路如下:

FR801XH上位机软件<FreqChip_Download.exe>以及烧录步骤如下:

这里使用的工程为:FR801xH-SDK-master\examples\dev1.0\ble_multi_role\kei

简单按照如下步骤修改主机的代码:

1.在void app_gap_evt_cb(gap_event_t *p_event)函数中修改扫描结构中判断设备的逻辑:


case GAP_EVT_ADV_REPORT:{uint8_t scan_name[] = "SYD_UART";// co_printf("data:%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\r\n",p_event->param.adv_rpt->data[0],p_event->param.adv_rpt->data[1],p_event->param.adv_rpt->data[19],\

//           p_event->param.adv_rpt->data[20],p_event->param.adv_rpt->data[21],p_event->param.adv_rpt->data[22],p_event->param.adv_rpt->data[23],p_event->param.adv_rpt->data[24],\

//           p_event->param.adv_rpt->data[25],p_event->param.adv_rpt->data[26]);//if(memcmp(event->param.adv_rpt->src_addr.addr.addr,"\x0C\x0C\x0C\x0C\x0C\x0B",6)==0)//            if (p_event->param.adv_rpt->data[0] == 0x05//                && p_event->param.adv_rpt->data[1] == GAP_ADVTYPE_LOCAL_NAME_COMPLETE//                && memcmp(&(p_event->param.adv_rpt->data[2]), scan_name, 0x12) == 0)if (p_event->param.adv_rpt->data[0] == 0x02&& p_event->param.adv_rpt->data[1] == GAP_ADTVYPE_FLAGS&& memcmp(&(p_event->param.adv_rpt->data[19]), scan_name, 0x08) == 0){gap_stop_scan();co_printf("evt_type:0x%02x,rssi:%d\r\n",p_event->param.adv_rpt->evt_type,p_event->param.adv_rpt->rssi);co_printf("content:");show_reg(p_event->param.adv_rpt->data,p_event->param.adv_rpt->length,1);gap_start_conn(&(p_event->param.adv_rpt->src_addr.addr),p_event->param.adv_rpt->src_addr.addr_type,12, 12, 0, 300);}}break;

2.在void app_gap_evt_cb(gap_event_t *p_event)函数中修改连接上设备好查找的服务:

case GAP_EVT_MASTER_CONNECT:{co_printf("master[%d],connect. link_num:%d\r\n",p_event->param.master_connect.conidx,gap_get_connect_num());//master_link_conidx = (p_event->param.master_connect.conidx);#if 0if (gap_security_get_bond_status())gap_security_enc_req(p_event->param.master_connect.conidx);elsegap_security_pairing_req(p_event->param.master_connect.conidx);#else//            extern uint8_t client_id;//            gatt_discovery_all_peer_svc(client_id,p_event->param.master_encrypt_conidx);uint8_t group_uuid[]={0x01,0x00};gatt_discovery_peer_svc(client_id,p_event->param.master_encrypt_conidx,2,group_uuid);#endifmr_central_start_scan();}break;

3.static uint16_t mr_central_msg_handler(gatt_msg_t *p_msg)函数中查找到服务后使能notify等操作:

case GAP_EVT_MASTER_CONNECT:{co_printf("master[%d],connect. link_num:%d\r\n",p_event->param.master_connect.conidx,gap_get_connect_num());//master_link_conidx = (p_event->param.master_connect.conidx);#if 0if (gap_security_get_bond_status())gap_security_enc_req(p_event->param.master_connect.conidx);elsegap_security_pairing_req(p_event->param.master_connect.conidx);#else//            extern uint8_t client_id;//            gatt_discovery_all_peer_svc(client_id,p_event->param.master_encrypt_conidx);uint8_t group_uuid[]={0x01,0x00};gatt_discovery_peer_svc(client_id,p_event->param.master_encrypt_conidx,2,group_uuid);#endifmr_central_start_scan();}break;

到此代码修改结束!

主从都下载好后双方的打印如下:

可以看到能够正确连接SYD8811,但是notify使能失败!

抓包后发现是因为FR801XH的芯片的ATT命令和手机的有点差别,造成和SYD8811不兼容!

目前先到这里,以后有需要再分析!

本文对应的资料包为"FR801XH连接SYD8811资料合集20220511 144402.7z",如果有需要,请和博主联系!

富芮坤FR801XH作为主机连接SYD8811相关推荐

  1. 富芮坤FR801xH使用SDK开发蓝牙GATT协议栈教程

    文章目录 一.FR801xH蓝牙芯片介绍 1.1 芯片外设资源 1.2 部分参数 1.3 芯片架构 二.开发(验证)板介绍 2.1 开发板资源 2.2 开发板烧录和串口调试方式 三.蓝牙协议栈SDK介 ...

  2. 富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

    文章目录 一.蓝牙协议栈启动流程 1.1 初始化代码 1.2 初始化流程 1.3 回调函数里的初始化 二.notify实现 2.1 notify介绍 2.2 notify实现 2.3.1 定义数据 2 ...

  3. 富芮坤蓝牙FR801xH开发环境搭建

    富芮坤蓝牙FR801xH方案开发资源包网盘下载链接:网盘 提取码:30qu 搭建过程: 安装Keil开发工具:mdk525.exe 可以从Keil官网下载:http://www.keil.com/fi ...

  4. 基于富芮坤fr8016 蓝牙5.0 芯片设计的BLE HID Joystick 游戏摇杆设备

    文章目录 ble hid 学习笔记 HID报告描述符与BLE HID profile之间关系 1.HID报告描述符 富芮坤fr8016 设计Joystick例子 1.描述X轴Y轴Z轴 2.描述按钮 3 ...

  5. 基于富芮坤的FR801 BLE芯片开发

    基于富芮坤的FR801 BLE芯片开发 前言:本篇主要讲解如何利用官方的SDK和ble 协议栈知识开发所需的功能 注意:因为官方是每个工程都导入同一个底层-所以一旦修改了components ,全部工 ...

  6. 富芮坤FR8008A开发环境

    1. 富芮坤FR8008A介绍 FR8008A官网有详细介绍 首页-企业官网 2.富芮坤FR8008A开发资料 keil软件: https://www.keil.com/download/produc ...

  7. 【富芮坤】 RF801xH的rost demo添加 OTA 功能

    [富芮坤] RF801xH的rost demo添加 OTA 功能: 官方的rost demo 并没有蓝牙的OTA功能.需要自己修改添加OTA功能进去. 操作步骤 步骤一:修改官方工程配置否则编译不过: ...

  8. 富芮坤fr8008gp lvgl遇坑和解法:卡死在lvgl定时器中;SWD接口配置;

    卡死在lvgl定时器中 官方提供的lvgl的demo在gui_main函数中如下设置定时器并调用window_manager_init函数初始化各个界面: /* Implement and regis ...

  9. 富芮坤FR8008A II2C驱动之AW9523B

    1. AW9523B简介        AW9523B是一款I2C接口.16路呼吸灯,每路可作扩展 GPIO 控制器.上电后,16 路 GPIO 口默认为输出模式,其输出默认值可通过 2 位器件地址进 ...

最新文章

  1. android 代码打开权限,android开发权限询问的示例代码
  2. 来个“云”毕业典礼,这些装扮太硬核了!
  3. honeywell新风系统控制面板说明_新风系统——不开窗也能清新呼吸
  4. 编写高性能的托管应用程序:入门
  5. 计算机安全概论论文,计算机安全探讨论文毕业论文(7篇).doc
  6. gif tools
  7. 资源放送丨《 MySQL中的索引探究 - 2020云和恩墨大讲堂》PPT视频
  8. find_package()的查找*.cmake的顺序
  9. 盒子横向排列-初识浮动Float(HTML、CSS)
  10. 奇迹单机版服务器修改,大天使之剑奇迹网页游戏 一键服务端单机版/架设教程/修改方法...
  11. 图之查找关键路径(python)实现
  12. 柯特斯公式的matlab代码,牛顿-柯特斯公式C语言的实现.pdf
  13. 转换IC CD7833CZ:4x41W汽车音响功率放大电路
  14. python爬取公众号阅读量_分享一个牛逼的Python项目:公众号文章爬虫
  15. gis与计算机科学之间的联系,GIS地理信息系统课程论文 地理信息系统与其他学科的关系及应用前景...
  16. ROS仿真环境中实现自主导航
  17. win10禁用笔记本原本键盘
  18. C++ 策略模式的具体案例与优缺点
  19. windows平台下静态库(.lib)和动态库(.dll)使用
  20. 公司要我做报表,只会随机数据图表的我感到危机感,来试试Python读取csv

热门文章

  1. laravel 上传图片 或word或excel储存不了后缀
  2. android 实现拍照,Android开发拍照实现
  3. 运用MACD捕捉最佳买卖点的一种简易方法
  4. 蓝牙模块各种工作模式
  5. 求排列数 C语言 PTA
  6. ipad 全民打飞机微信登录不了 显示服务器繁忙,我手机用的是QQ浏览器,两天前登陆时页面老是出现网络不给力,请稍后再试的提示,客服也问了也关机重启过...
  7. Mysql出现which is not functionally dependent on columns in GROUP BY clause的解决办法
  8. 芯片测试问题的一些理解
  9. 迷宫问题【数据结构实验报告】
  10. Unity 声音组件 Audio Source(声源)和Audio Listener(声音接收者)