你好,
我正在研究一个DA14580,我正在向智能手机应用程序传输数据(每个数据包的16到20个字节之间)。问题是当我发送超过8个字节时,例如16,我收到两个8个字节的数据包而不是16个字节中的一个。您知道keil项目中是否有一个选项,可能会限制已发送的数据包的大小?
提前致谢
嗨Avouali,
keil与此无关,我想你在使用通知才能发送数据,通知有最大的数据传输MTU数据的长度,但默认的MTU大小是大约20bytes,你能详细说明你的问题吗?一点,因为我不确定我跟着。您使用了哪些例子,您应用了哪些修改。例如,如果使用ble_app_peripheral示例并将adc1值修改为16字节,并且从app_adcval1_timer_cb_handler()函数填充16字节值,则应在一个通知数据包中获取所有16个字节。
谢谢mt_dialog.
我必须承认我甚至不确定使用通知来发送数据。我使用SDK v_5.150.2。在这个项目上,我添加了外部中断以唤醒并变成低功耗模式BLE模块。我没有触摸与传输相关的任何连接和所有功能。我发送数据以通过UART发送(57k6波特)。
我的项目看起来是功能的,因为我可以正确地与DSP应用程序进行通信,我完全收到了我的预期。问题是当我尝试与自己的应用程序进行通信时,数据包的长度长为8个字节。我在以下数据包中获取其余信息。所以要获得16个字节,我需要解码2个数据包而不是一个数据包。
希望我更清楚
嗨Avouaill,
对不起,仍然无法理解设置,我得到了使用DSP,您正在将数据发送到自定义应用程序,DSP使用MTU Exchange功能,以便能够通知20个以上的数据一个L2CAP数据包,因此您上部侧面的通知应该是非常大的,甚至超过20个字节,这是默认值。也许您应该尝试比DSPS应用程序更简单,以便熟悉BLE协议本身,如App_ble_Peripheral,检查App_Adcval1_timer_cb_Handler()通知特性的默认长度为2个字节,但您可以通过更改轻松地将其扩展为16个字节。def_cust1_adc_val_1_char_len到16的值而不是2.此外,由于您使用自定义应用程序以便与DSPS应用程序通信时,请记住,您必须在流控制特性上启用通知,以便系统工作正确,也许这与它有关,也是您在8字节数据包中所关注的应用程序界面中看到的事实可能与您的应用程序有关,而不是如何通过空中发送数据。
感谢您的回答。我会尝试一下,让你知道我是否有新的东西。
问候
嗨Avouali,
keil与此无关,我想你在使用通知才能发送数据,通知有最大的数据传输MTU数据的长度,但默认的MTU大小是大约20bytes,你能详细说明你的问题吗?一点,因为我不确定我跟着。您使用了哪些例子,您应用了哪些修改。例如,如果使用ble_app_peripheral示例并将adc1值修改为16字节,并且从app_adcval1_timer_cb_handler()函数填充16字节值,则应在一个通知数据包中获取所有16个字节。
谢谢mt_dialog.
你好,
我必须承认我甚至不确定使用通知来发送数据。
我使用SDK v_5.150.2。在这个项目上,我添加了外部中断以唤醒并变成低功耗模式BLE模块。
我没有触摸与传输相关的任何连接和所有功能。
我发送数据以通过UART发送(57k6波特)。
我的项目看起来是功能的,因为我可以正确地与DSP应用程序进行通信,我完全收到了我的预期。问题是当我尝试与自己的应用程序进行通信时,数据包的长度长为8个字节。我在以下数据包中获取其余信息。所以要获得16个字节,我需要解码2个数据包而不是一个数据包。
希望我更清楚
嗨Avouaill,
对不起,仍然无法理解设置,我得到了使用DSP,您正在将数据发送到自定义应用程序,DSP使用MTU Exchange功能,以便能够通知20个以上的数据一个L2CAP数据包,因此您上部侧面的通知应该是非常大的,甚至超过20个字节,这是默认值。也许您应该尝试比DSPS应用程序更简单,以便熟悉BLE协议本身,如App_ble_Peripheral,检查App_Adcval1_timer_cb_Handler()通知特性的默认长度为2个字节,但您可以通过更改轻松地将其扩展为16个字节。def_cust1_adc_val_1_char_len到16的值而不是2.此外,由于您使用自定义应用程序以便与DSPS应用程序通信时,请记住,您必须在流控制特性上启用通知,以便系统工作正确,也许这与它有关,也是您在8字节数据包中所关注的应用程序界面中看到的事实可能与您的应用程序有关,而不是如何通过空中发送数据。
谢谢mt_dialog.
你好,
感谢您的回答。
我会尝试一下,让你知道我是否有新的东西。
问候