首先简单过一下spp的Dongle模块的代码调试:

1,原始的SDK即默认的开启了SPP协议,搜到蓝牙名称,通过spp工具即可链接上耳机的spp需要注意的是炬芯的spp默认的UUID码为E003,我们手机连接的时候需要将UUID码设置为E003即可连上手机。

这个UUID的默认配置在app_config.c里边,自己调试着玩的时候可以去更改这个UUID码。我们手机默认的UUID为1101,也可以把这个改为1101这样可以直接和手机相连。


const app_defcfg_fix_item_t  app_defcfg_fix_table[] =
{{ 0x13c + 0, 2, "\x00\x00" },     // CFG_System_Settings.Support_Features = 0;{ 0xdb8 + 6, 2, "\xc8\x00" },     // CFG_BTMusic_User_Settings.BM_SBC_Playing_CacheData = 200;{ 0xdb8 + 8, 2, "\xc8\x00" },     // CFG_BTMusic_User_Settings.BM_AAC_Playing_CacheData = 200;{ 0xdf6 + 6, 2, "\x50\x00" },     // CFG_BTSpeech_User_Settings.BS_CVSD_Playing_CacheData = 80;{ 0xdf6 + 8, 2, "\x50\x00" },     // CFG_BTSpeech_User_Settings.BS_MSBC_Playing_CacheData = 80;{ 0x9d6 + 71, 1, "\x01" },        // CFG_BT_Device.Force_Default_HOSC_Capacity = YES;{ 0xa2a + 14, 4, "E003" },        // CFG_BT_Manager.SPP_UUID = "0000E003-0000-1000-8000-00805F9B34FB";{ 0x1383 + 6 + 0, 1, "\x01" },    // CFG_Sys_Reserved_Data.TWS_Advanced_Pair.Enable_TWS_Advanced_Pair_Mode = YES;{ 0xab7 + 0, 2, "\x00\x00" },     // CFG_BT_Music_Stop_Hold.Key_Pause_Stop_Hold_Ms = 0;{ 0xab7 + 2, 2, "\x00\x00" },     // CFG_BT_Music_Stop_Hold.Key_Prev_Next_Hold_Ms = 0;{ 0x8aa + 17*6 + 4, 1, "\x00" },  // CFG_Event_Notify.Notify[17].Voice_Play = VOICE_NONE;{ 0x8aa + 18*6 + 4, 1, "\x00" },  // CFG_Event_Notify.Notify[18].Voice_Play = VOICE_NONE;{ 0x8aa + 19*6 + 4, 1, "\x00" },  // CFG_Event_Notify.Notify[19].Voice_Play = VOICE_NONE;{ 0x8aa + 20*6 + 4, 1, "\x00" },  // CFG_Event_Notify.Notify[20].Voice_Play = VOICE_NONE;{ 0xab1 + 0, 1, "\x00" },         // CFG_BT_Music_Volume_Sync.Volume_Sync_Only_When_Playing = NO;{ 0xabf + 0, 1, "\x00" },         // CFG_BT_Call_Volume_Sync.Origin_Volume_Sync_To_Remote = NO;{ 0x6a3 + 6, 1, "\x0C" },         // CFG_Volume_Settings.BT_Music_Default_Vol_Ex = 12;{ 0x1383 + 60 + 3, 1, "\x01" },   // CFG_Type_OTA_Settings.Enable_Ver_Diff = YES;{ 0x1383 + 60 + 4, 1, "\x01" },   // CFG_Type_OTA_Settings.Enable_Ver_Low_OTA = YES;{ 0x1383 + 189, 2, "\x01\x01" },  // Enable_Latency_Control = 1, Enable_BTMusic_PLC_When_Empty = 1;{ 0x9d6 + 70, 1, "\x96" },        // CFG_BT_Device.Default_HOSC_Capacity = 15.0pf;
};

2,手机成功连接上spp之后就可以和耳机进行通信,测试一些功能了,发送的格式如OTA_main函数中规则所定:

void OTA_main(void)
{sys_set_cpufreq_by_module(SET_CPUFREQ_MODULE_SYS_MANAGER_2, 144);u8_t head_data = spp_data_check();log_debug("head_data 0x%x",head_data);if (0xFF == head_data){return;}else if (OFFLINE_OTA_HEAD_MAGIC == head_data){offline_ota();}else if (USP_PACKET_TYPE_DATA == head_data){asqt_spp_communicate();}else if (ABTP_HEAD_MAGIC == head_data){abtp_communicate();}else if (MIC_TEST_HEAD_MAGIC == head_data){mic_test_communicate();}else if (SIGNALING_PATHWAY_HEAD_MAGIC == head_data){sys_set_cpufreq_by_module(SET_CPUFREQ_MODULE_SYS_MANAGER_2, 0);signaling_pathway_debug();}else if (bt_manager_spp_is_connected()){online_ota();}sys_set_cpufreq_by_module(SET_CPUFREQ_MODULE_SYS_MANAGER_2, 0);
}

Eg:mic_test_communicate这个执行在OTA_MAIN中头为0x05,然后进mic_test_communicate()函数中看,spp连接上之后还需要发后续命令

typedef struct

{

uint8 head[6];

uint8 cmd;                  ///< command, \ref in MIC_TEST_COMMAND

uint8 reserved;

}mic_test_cmd_packet_t;在这个结构体中可以看到

命令格式:命令头+cmd + start/stop

命令头:固定为0x05, 0x5A, 0x04, 0x00, 0x01, 0x11

最后我们发送的命令为:05 5A 04 00 01 11 81

void mic_test_communicate(void)
{mic_test_cmd_packet_t cmd_packet;bool status;while (bt_manager_spp_is_connected()){if ((MIC_TEST_CMD_LEN == bt_manager_spp_data_read(&cmd_packet, MIC_TEST_CMD_LEN, 1000))&& (0 == memcmp(&cmd_packet, mic_test_cmd_head, sizeof(mic_test_cmd_head)))){status = TRUE;// log_info("test cmd:%d", cmd_packet.cmd);switch (cmd_packet.cmd){case ENABLE_L_MIC_RAW_TEST:// only main MICplayer_extend_operation(PLAYER_BLUETOOTHSPEECH, PLAYER_EXTOP_MAINMIC_RAWEN, NULL);break;case ENABLE_R_MIC_RAW_TEST:// only vice MICplayer_extend_operation(PLAYER_BLUETOOTHSPEECH, PLAYER_EXTOP_REFMIC_RAWEN, NULL);break;case ENABLE_BOTH_MIC_ENC_TEST:// both MICplayer_extend_operation(PLAYER_BLUETOOTHSPEECH, PLAYER_EXTOP_TWOMIC_ENCEN, NULL);break;default :status = FALSE;break;}if (status){send_mic_test_response(cmd_packet.cmd);}}else{OSTimeDly(5);}app_process_routine(APP_ROUTINE_TIMER | APP_ROUTINE_MESSAGE);}
}

依次我们可以通过修改这里边的代码,自己增加接口或者判断条件,进行一些spp的数据接收和数据发送。

3,通过spp上传手机log的操作也是如此,使用炬芯给到的apk工具,连接到手机上之后,也是需要匹配上相应的UUID码。

炬芯平台SPP私有协议调试相关推荐

  1. 炬芯3019系列简介

    炬芯3019的IC在九月份开发了源码给到各个开发者手里,比以前大部分都是通过配置工具去配置方便了很多,也增加了很多我们开发者的一些权限,定制化的程度更高了,相对来说我们开发者对于代码的熟悉程度要求更高 ...

  2. 龙芯平台下调试蜂鸣器

    龙芯平台下调试蜂鸣器 据我所知,蜂鸣器包含有源与无源蜂鸣器之分.区别在于有源的只需要一个脉冲信号进行驱动,而无源则需要使用一定频率的PWM进行驱动. 目前正在调试龙芯平台的Beep功能,使用的是7A桥 ...

  3. EasyCVR视频平台接入海康私有协议设备的常见问题汇总

    EasyCVR支持目前市面上已经有的大多数协议的设备接入,也包括一些私有协议,比如海康SDK.大华SDK.Ehome协议等.有用户在使用EasyCVR平台时,用海康私有协议接入设备,已成功实现预览.控 ...

  4. 干货应用迁移|搜狗输入法在龙芯平台上的适配与应用

    技术引领创新,用"芯"构建生态,第一期龙芯生态论坛于2021年3月12日(周五)盛大开讲!龙芯生态论坛作为龙芯生态建设的重要技术交流窗口,将汇聚龙芯资深技术专家及行业生态伙伴精英, ...

  5. linux内核深度解析_十年磨一剑,第一本龙芯平台的Linux内核书来了

    <用"芯"探核:基于龙芯的Linux内核探索解析>是一本基于龙芯平台,结合源代码来探索和解析Linux-5.x内核的书. 市面上解析Linux 内核的经典书籍已有不少, ...

  6. LigoWave(力格微)无线网桥稳定性探秘——私有协议

    文章开端,首先让我们来分析下目前国内3公里以内网桥产品的主要生产方式: 第一.无线路由器主板+射频天线+路由器软件: 第二.自己设计网桥主板+抄板射频天线+免费开放软件: 第三.抄板网桥主板+抄板射频 ...

  7. 物联网云平台DTU Modbus协议 上位机 下位机 源码 源代码 程序

    物联网云平台DTU Modbus协议 上位机 下位机 源码 源代码 程序 一.源码的使用基本说明: 1.1 编译语言: 下位机使用C语言:上位机使用C#语言 标准Modbus Slave通信下位机源码 ...

  8. 龙芯平台OsTools-Gmac更新

    龙芯平台OS下更新GMAC功能 文章目录 龙芯平台OS下更新GMAC功能 Gmac的flash烧录功能实现 使用说明 Mac地址的有效解析格式 Best Wish Gmac的flash烧录功能实现 G ...

  9. 视频监控系统上云解决方案EasyCVR集成海康EHome私有协议系列——文件查找操作流程

    视频监控系统采用云模式进行规划.建设和部署,实现了资源的共享.数据的融通.算力的提升:而开放的生态和业务的智能,让视频监控系统更好地为公安实战服务,让城市更安全.TSINGSEE青犀视频团队研发的Ea ...

最新文章

  1. ITRON系统使用方法
  2. CSP认证201803-1 跳一跳[C++题解]: 模拟
  3. 25个必须记住的SSH命令
  4. 【Python】可遍历的数据类型有哪些?
  5. C# 系统应用之鼠标模拟技术及自动操作鼠标
  6. 数据迁移期间进程命令
  7. 荣耀8鸿蒙刷机,华为荣耀平板s8-701w刷机记(示例代码)
  8. hermite插值matlab代码,hermite插值以及两种MATLAB程序
  9. 常用收藏(自己用的)
  10. oracle羊毛,弃Cloudflare,薅Oracle羊毛
  11. SF中对象发出消息后在chatter上显示名字的问题
  12. 无障碍应用程序:无障碍访问和无障碍入门
  13. iptables 查看客户端流量情况
  14. Python习题十一
  15. mysql柔性可用_柔性可用——移动互联网时代的一秒响应秘诀
  16. 基于JavaWeb的校友录同学录管理系统
  17. 人工智能的数学基础 | AI基础
  18. 360扣扣保镖 QQ 360 打架
  19. 安卓手机软件开发_安卓85家庭理财软件个人记账(app)
  20. 二十年后的回眸(9)——十年著书路

热门文章

  1. 你想要的二维码美化效果都在这里了(前景图,圆点二维码,液化效果)
  2. Ubuntu18.04+Nvidia RTX 3060+Pytorch配置GPU环境
  3. matlab ukf,UKF(无迹卡尔曼滤波器)函数
  4. 【OpenCV+Qt】实现简易视频播放器——支持进度条拖动
  5. python实现erp自动化_用轻流,实现ERP的自动化工作流程
  6. 项目实训第四周第二次记录
  7. java-web实训项目:simonshop(3)Servlet层
  8. 读两本敦煌书杂记-敦煌由盛转衰(二)
  9. ros手柄控制机器人小车(一)
  10. 迟到的2016年年终总结----拒绝平庸的一年