CH579发送长包的问题

ch579连接手机,无需手机发送MTU请求,能发送长包么? 如果能要怎么做呢?

发送长包,需要做如下处理:

1650798380535329.png

1650798380451440.jpg

建立连接后,手机端BLE调试助手右上角有一个修改MTU,参数修改为247即可。


那我不想手机发起MTU请求,和手机建立连接后直接可以发送长包,怎么处理呢


如果不想手机发起,那么就用从机发起,可以在我们从机例程中这么添加:

emobile_2022-04-25_09-59-23.png


emobile_2022-04-25_09-58-52.png


ok,可以了


ok,可以了


@TECH_Hy SIMPLEPROFILE_CHAR1_LEN~SIMPLEPROFILE_CHAR5_LEN都需要改成244吗?此时一次蓝牙最长可以发送的字节数就是244吗


@TECH_Hy还有GATT_InitClient是在哪里添加的,收到的ch57x_ble_uart工程中找不到GATT_InitClient上下文函数的调用


是的,交互mtu后将SIMPLEPROFILE_CHAR1_LEN~SIMPLEPROFILE_CHAR5修改改成244,那么一包最大就是244字节,GATT_InitClient一般都是在主机中调用,所以从机中是搜索不到的,是需要自己添加的,添加在从机外设初始化函数中,可看看下四楼截图位置。


image.png

找到后面的函数了,缺了2个任务,跟截图不一致,需要修改吗?


可以的,缺少任务是因为不同的例程,有着不同的流程,可以看看任务具体实现了什么功能,如从机peripheral中第一个任务,开启了一个定时任务,一秒从机给主机发送一条notify信息,而ble uart的逻辑是将串口收到的数据通过notify发送到主机,第三个任务是打印rssi的,有需要就开启就行了。


@TECH_Hy GATT_InitClient函数需要在哪里调用,ch57x_ble_uart例程没找到截图中的初始化函数


image.png

Peripheral_Init();就是,可以打开函数看看。


只有登录才能回复,可以选择微信账号登录