一、环境

使用CH573EVT_V1.4\EVT\EXAM\BLE\Peripheral

二、流程

例如我们要收发 200 字节数据

  1. config.h里面设置 MTU大小 为207 !最后实际设置成功后,MTU=203 ,实际收发数据=203-3=200
#ifndef BLE_BUFF_MAX_LEN
#define BLE_BUFF_MAX_LEN                        207//27
  1. 设置特征值长度,这里 CHAR1用于Write,CHAR4用于Notify
// Length of characteristic in bytes ( Default MTU is 23 )
#define SIMPLEPROFILE_CHAR1_LEN               200
#define SIMPLEPROFILE_CHAR2_LEN               1
#define SIMPLEPROFILE_CHAR3_LEN               1
#define SIMPLEPROFILE_CHAR4_LEN               200
#define SIMPLEPROFILE_CHAR5_LEN               5
  1. 最好增加以下每个间隔可以发送的数据包
//BLE_TX_NUM_EVENT                           - 单个连接事件最多可以发多少个数据包( 默认:1 )
#ifndef BLE_TX_NUM_EVENT
#define BLE_TX_NUM_EVENT                        3
#endif
  1. 加一下MTU设置成功的打印回调
uint16 Peripheral_ProcessEvent( uint8 task_id, uint16 events )
{//  VOID task_id; // TMOS required parameter that isn't used in this functionif ( events & SYS_EVENT_MSG ){uint8 *pMsg;if ( (pMsg = tmos_msg_receive( Peripheral_TaskID )) != NULL ){Peripheral_ProcessTMOSMsg( (tmos_event_hdr_t *)pMsg );// Release the TMOS messagetmos_msg_deallocate( pMsg );}// return unprocessed eventsreturn (events ^ SYS_EVENT_MSG);}----------------------------------------------
/********************************************************************** @fn      Peripheral_ProcessTMOSMsg** @brief   Process an incoming task message.** @param   pMsg - message to process** @return  none*/
static void Peripheral_ProcessTMOSMsg( tmos_event_hdr_t *pMsg )
{switch ( pMsg->event ){case GATT_MSG_EVENT:{centralProcessGATTMsg( (gattMsgEvent_t *) pMsg );}break;default:break;}
}
  1. 注意点,notify数据最好不超100字节,否则很容易发送失败。。。主设备Write设备倒是可以200字节

CH573 Peripheral 修改MTU相关推荐

  1. mtu设置失败_华为路由器修改MTU值失败怎么办

    华为路由器修改MTU值失败怎么办 MTU是MaximumTransmissionUnit的缩写,是网络上传送的最大数据包,华为路由器修改MTU值失败怎么办?下面是小编为大家整理关于华为路由器修改MTU ...

  2. 【MTU】Windows/Linux下修改MTU

    一.关于MTU 通过 MAC 封装的定义,现在我们知道标准以太网络frame所能传送的数据量最大可以到达 1500 bytes , 这个数值就被我们称为 MTU (Maximum Transmissi ...

  3. Linux修改网络支持巨型帧,RAC私网使用巨型帧 Solaris虚拟化环境修改MTU

    背景介绍: 需求: 部署3节点oracle RAC时, 要求4网口中,公网网口使用2个并用 ipmp 绑定, 私网网口使用 HAIP 并支持巨型帧 (Jumbo Frame) 主机: 3节点主机均为 ...

  4. LINUX手动查看和修改MTU值的方法

    默认的ANDROID系统中不带BUSYBOX,所以无法用BUSYBOX IFCONFIG来查看修改MTU值.其实网卡的MTU值是保存在/sys/class/net/eth0/mtu文件中,所以可以通过 ...

  5. Linux中通过修改MTU值来修改网速

    通过ADSL宽带"猫"上网,系统为RedHat 9.0,但在上网时有些网页打不开,而且网速不快.这跟MTU值有关系,将它修改到适当的值即可.在Windows下可以通过修改注册表来修 ...

  6. 用ping追踪计算机的最佳MTU值修改MTU值

    用ping追踪计算机的最佳MTU值&修改MTU值 1.什么是MTU MTU是Maximum Transmission Unit的缩写.意思是网络上传送的最大数据包.MTU的单位是字节. 大部分 ...

  7. centos 设置mtu_linux下修改mtu值

    原文:http://www.361way.com/linux-mtu-jumbo-frames/4055.html 一.jumbo frames 相关 1.什么是jumbo frames Jumbo ...

  8. java修改mtu值_windows XP系统怎么通过 CMD 系统修改 MTU 值?

    MTU设置 MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元.设置合适的MTU值可以解决"部分网站打不开&qu ...

  9. 【PC】【MTU】PC查看和修改MTU的方法小结

    前言 在TCP/IP相关功能调试过程中,除了要调整嵌入式设备的MTU外,经常需要调整其连接PC的MTU.本文整理了不同情况下MTU修改和查看的方法. windows系统网卡的MTU查看&修改 ...

最新文章

  1. koa源码阅读之koa-compose/application.js
  2. SEO中的DIV CSS样式的命名规则
  3. Spring冲刺计划会议
  4. leetcode算法题--最长回文子序列★★
  5. Dbvis数据库连接工具将查询出数据转化为sql插入语句方法
  6. 【CodeForces - 124C】Prime Permutation(数学,思维,小结论)
  7. android剪切 图片,android 剪切图片
  8. css div中文字位置_计算机二级Web(4):CSS基础 (上)
  9. Seismic migration - Wikipedia
  10. Docker与虚拟机技术
  11. php 获取小数精度,php小数精度问题
  12. K33 不是平面图_怎么用 PS 做景观平面图?
  13. 电子书阅读器背景颜色修改方法
  14. 数据仓库十大主题;TeraData金融数据模型
  15. OpenCL编程初探
  16. 【Android开发日记】jsonObject = new JSONObject(info)报错 A JSONObject text must begin with '{' at character
  17. C语言实现乘法口诀表
  18. Armadillo安装
  19. hack the box 注册邀请码的获取
  20. 苹果cms数据.php,苹果cms数据库常用sql语句对照及使用方法

热门文章

  1. swi 指令能用在C语言吗,SWI指令---软件中断实例详解
  2. PHP 利用文件锁处理高并发
  3. high-performance server architecture
  4. PAT_乙级1016
  5. java爬虫爬取笔趣阁小说
  6. vsftpd服务----配置
  7. ybt1283:登山
  8. C语言中输入两个整数,输出其中的最大值
  9. 中国汽车氢传感器行业市场供需与战略研究报告
  10. YOLOv5系列(2)——YOLOv5导出jit,onnx,engine