你好,
我工作在一个DA14580,我传输数据(在16到20字节之间的每个数据包)到一个智能手机应用程序。问题是,当我发送超过8字节,例如16,我收到两个8字节的数据包,而不是一个16字节。你知道在keil项目中是否有一个选项可以限制发送数据包的大小?
谢谢提前
嗨Avouali,
凯尔无关,我假设您正在使用通知来发送数据,通知有一个最大数据传输MTU的长度数据,但的缺省MTU大小大约是20字节,你能请详细说明你的问题,因为我不确定我跟进。你在使用什么例子,你应用了什么修改。例如,如果使用ble_app_peripheral示例并将ADC1值特征修改为16字节,并从app_adcval1_timer_cb_handler()函数填充16字节的值,那么应该在一个通知包中获得所有16字节。
由于MT_dialog
我必须承认,我甚至不确定是否使用通知发送数据。我使用SDK v_5.150.2。在这个项目中,我添加了一个外部中断来唤醒BLE模块并将其转换为低功耗模式。我没有接触任何与变速器和所有相关功能相关的东西。我通过UART发送数据(57k6 bauds)。
我的项目看起来是功能,因为我可以与DSPS应用程序正确地沟通,我收到我所期望的。问题是,当我试图与我自己的应用程序通信,数据包的长度是8字节长。我得到了下面数据包中的其他信息。所以要得到16个字节,我需要解码2个数据包而不是一个。
希望我说得更清楚了
嗨Avouaill,
对不起,仍然不能够理解的设置,我得到,您使用的是需求方,你将数据发送到一个自定义应用程序,使用MTU的需求方交换功能是能够通知超过20字节的数据在一个L2CAP包,所以你得到中央的通知应该相当大,甚至超过20个字节,这是默认值。为了熟悉BLE协议本身,比如app_ble_peripheral,也许您应该尝试一些比DSPS应用程序更简单的东西,检查app_adcval1_timer_cb_handler(),通知特征的默认长度是2字节,但是通过将DEF_CUST1_ADC_VAL_1_CHAR_LEN中的值更改为16而不是2,您可以轻松地将其扩展为16字节。此外,由于您正在使用自定义应用程序来与DSPS应用程序通信,请记住,您必须在流控制特性上启用通知,以便系统正常工作,也许这与它有关,另外,您在应用程序接口上看到的数据以8字节包的形式进入,这可能与您的应用程序有关,而不是数据如何通过空中传输。
谢谢你的回答。我会试试的,如果我有新发现就告诉你。
问候
嗨Avouali,
凯尔无关,我假设您正在使用通知来发送数据,通知有一个最大数据传输MTU的长度数据,但的缺省MTU大小大约是20字节,你能请详细说明你的问题,因为我不确定我跟进。你在使用什么例子,你应用了什么修改。例如,如果使用ble_app_peripheral示例并将ADC1值特征修改为16字节,并从app_adcval1_timer_cb_handler()函数填充16字节的值,那么应该在一个通知包中获得所有16字节。
由于MT_dialog
你好,
我必须承认,我甚至不确定是否使用通知发送数据。
我使用SDK v_5.150.2。在这个项目中,我添加了一个外部中断来唤醒BLE模块并将其转换为低功耗模式。
我没有接触任何与变速器和所有相关功能相关的东西。
我通过UART发送数据(57k6 bauds)。
我的项目看起来是功能,因为我可以与DSPS应用程序正确地沟通,我收到我所期望的。问题是,当我试图与我自己的应用程序通信,数据包的长度是8字节长。我得到了下面数据包中的其他信息。所以要得到16个字节,我需要解码2个数据包而不是一个。
希望我说得更清楚了
嗨Avouaill,
对不起,仍然不能够理解的设置,我得到,您使用的是需求方,你将数据发送到一个自定义应用程序,使用MTU的需求方交换功能是能够通知超过20字节的数据在一个L2CAP包,所以你得到中央的通知应该相当大,甚至超过20个字节,这是默认值。为了熟悉BLE协议本身,比如app_ble_peripheral,也许您应该尝试一些比DSPS应用程序更简单的东西,检查app_adcval1_timer_cb_handler(),通知特征的默认长度是2字节,但是通过将DEF_CUST1_ADC_VAL_1_CHAR_LEN中的值更改为16而不是2,您可以轻松地将其扩展为16字节。此外,由于您正在使用自定义应用程序来与DSPS应用程序通信,请记住,您必须在流控制特性上启用通知,以便系统正常工作,也许这与它有关,另外,您在应用程序接口上看到的数据以8字节包的形式进入,这可能与您的应用程序有关,而不是数据如何通过空中传输。
由于MT_dialog
你好,
谢谢你的回答。
我会试试的,如果我有新发现就告诉你。
问候