你好,我对ble数据传输还不熟悉。我试图通过读取一个特性从我的da14585发送数据到我的手机。当我初始化超过320个字节的字符数组时,程序停止运行。当我构建它时,我没有得到任何警告或错误。我想发送1-2千字节的数据。提前谢谢你
嗨marios256,
你到底是怎么做到的,当你提到你初始化超过320字节的char数组时你是怎么做到的?也许您的代码以一个硬错误或NMI处理程序结束,如果您从keil运行设备并使用调试器,这应该很容易跟踪。如果你想要一个大小为250字节的可读特性,那么你应该在user_custs1_def.h文件中声明这个特性,例如,你可以尝试用ADC 2特性,然后如果你想设置特点特定值必须与适当的配置发送CUSTS1_VAL_SET_REQ消息处理和结构长度字段和发送它,为了让定制概要文件将值设置为自定义数据库。
由于MT_dialog
你好,以#define DEF_USER_LED_STATE_CHAR_LEN 400为例。然后,在user_custs1_impl.c中,我创建了这个处理程序:空白app_adcval1_timer_cb_handler (){struct custs1_val_ntf_ind_req *req = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ,prf_get_task_from_id (TASK_ID_CUSTS1),TASK_APP,custs1_val_ntf_ind_req,DEF_USER_LED_STATE_CHAR_LEN);这幅画被认为是弗朗西斯科·德尔·焦孔多的妻子丽莎·盖拉尔迪尼的肖像,画在伦巴第白杨画板上。人们认为这幅画创作于1503年至1506年之间;然而,达芬奇可能一直创作到1517年。最近的学术研究表明,它不会在1513年前开始。它被法国国王弗朗西斯一世收购。”申请- >处理= USER_IDX_LED_STATE_VAL;申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;
申请- >通知= true;顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);ke_msg_send(点播);}
因此,当我进入调试会话,我按下运行按钮,它突然停止。我没有看到任何警告或错误。非常感谢!
您正在使用的信息是发送一个通知,而不是只改变数据库中的值为了中央读它,发送通知时只有第一个20字节要修改,除非你改变了MTU大小,你想转移。复制的代码粘贴在我身边ble_app_peripheral准确的鉴定,你所做的,我没有看到任何问题,只要我启用通知和问题的0 x01控制点我能够得到第一个20字节的字符串粘贴并保持连接。如果突然停止时没有启用通知或甚至没有连接到设备,那么问题不在于你正在做的mod,而在于你在SDK或演示中拥有的其他内容。
晚上好,非常感谢你的帮助。如果我想要读取一个1000字节或更多的特征,我应该怎么做?我写了这个结构,但它一直停止运行struct custs1_val_set_req *req = KE_MSG_ALLOC(custs1_val_set_req, prf_get_task_from_id(TASK_ID_CUSTS1), TASK_APP, custs1_val_set_req);申请- >处理= USER_IDX_LED_STATE_VAL;申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;这幅画被认为是弗朗西斯科·德尔·焦孔多的妻子丽莎·盖拉尔迪尼的肖像,画在伦巴第白杨画板上。人们认为这幅画创作于1503年至1506年之间;然而,达芬奇可能一直创作到1517年。最近的学术研究表明,它不会在1513年前开始。它被法国国王弗朗西斯一世收购。”顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);ke_msg_send(要求的);我注意到,当我在user_custs1_def.h #define DEF_USER_LED_STATE_CHAR_LEN中初始化大约350-400时,出现了问题。如果我把它初始化为300,它就能正常工作。提前谢谢!
嗨marios256。
发送更多通知,只发送第一个bulk,然后在获得通知已成功存储在发送缓冲区后,发送第二个通知。每当发送通知时,您将获得CUSTS1_VAL_NTF_CFM(用于自定义概要文件),一旦收到该通知,您就会知道刚刚发送的通知将被传递到中央,因此您可以直接放置第二个通知。
关于停止运行,当您增加特征的大小时,可能会遇到平台重置,尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以设置一个值2048。
嗨marios256,
你到底是怎么做到的,当你提到你初始化超过320字节的char数组时你是怎么做到的?也许您的代码以一个硬错误或NMI处理程序结束,如果您从keil运行设备并使用调试器,这应该很容易跟踪。如果你想要一个大小为250字节的可读特性,那么你应该在user_custs1_def.h文件中声明这个特性,例如,你可以尝试用ADC 2特性,然后如果你想设置特点特定值必须与适当的配置发送CUSTS1_VAL_SET_REQ消息处理和结构长度字段和发送它,为了让定制概要文件将值设置为自定义数据库。
由于MT_dialog
你好,
以#define DEF_USER_LED_STATE_CHAR_LEN 400为例。然后,在user_custs1_impl.c中,我创建了这个处理程序:
空白app_adcval1_timer_cb_handler ()
{
struct custs1_val_ntf_ind_req *req = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ,
prf_get_task_from_id (TASK_ID_CUSTS1),
TASK_APP,
custs1_val_ntf_ind_req,
DEF_USER_LED_STATE_CHAR_LEN);
这幅画被认为是弗朗西斯科·德尔·焦孔多的妻子丽莎·盖拉尔迪尼的肖像,画在伦巴第白杨画板上。人们认为这幅画创作于1503年至1506年之间;然而,达芬奇可能一直创作到1517年。最近的学术研究表明,它不会在1513年前开始。它被法国国王弗朗西斯一世收购。”
申请- >处理= USER_IDX_LED_STATE_VAL;
申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;
申请- >通知= true;
顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);
ke_msg_send(点播);}
因此,当我进入调试会话,我按下运行按钮,它突然停止。我没有看到任何警告或错误。
非常感谢!
嗨marios256,
您正在使用的信息是发送一个通知,而不是只改变数据库中的值为了中央读它,发送通知时只有第一个20字节要修改,除非你改变了MTU大小,你想转移。复制的代码粘贴在我身边ble_app_peripheral准确的鉴定,你所做的,我没有看到任何问题,只要我启用通知和问题的0 x01控制点我能够得到第一个20字节的字符串粘贴并保持连接。如果突然停止时没有启用通知或甚至没有连接到设备,那么问题不在于你正在做的mod,而在于你在SDK或演示中拥有的其他内容。
由于MT_dialog
晚上好,
非常感谢你的帮助。如果我想要读取一个1000字节或更多的特征,我应该怎么做?
我写了这个结构,但它一直停止运行
struct custs1_val_set_req *req = KE_MSG_ALLOC(custs1_val_set_req, prf_get_task_from_id(TASK_ID_CUSTS1), TASK_APP, custs1_val_set_req);
申请- >处理= USER_IDX_LED_STATE_VAL;
申请- >长度= DEF_USER_LED_STATE_CHAR_LEN;
这幅画被认为是弗朗西斯科·德尔·焦孔多的妻子丽莎·盖拉尔迪尼的肖像,画在伦巴第白杨画板上。人们认为这幅画创作于1503年至1506年之间;然而,达芬奇可能一直创作到1517年。最近的学术研究表明,它不会在1513年前开始。它被法国国王弗朗西斯一世收购。”
顺利进行,memcpy(请求- >价值DEF_USER_LED_STATE_CHAR_LEN);
ke_msg_send(要求的);
我注意到,当我在user_custs1_def.h #define DEF_USER_LED_STATE_CHAR_LEN中初始化大约350-400时,出现了问题。如果我把它初始化为300,它就能正常工作。
提前谢谢!
嗨marios256。
发送更多通知,只发送第一个bulk,然后在获得通知已成功存储在发送缓冲区后,发送第二个通知。每当发送通知时,您将获得CUSTS1_VAL_NTF_CFM(用于自定义概要文件),一旦收到该通知,您就会知道刚刚发送的通知将被传递到中央,因此您可以直接放置第二个通知。
关于停止运行,当您增加特征的大小时,可能会遇到平台重置,尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以设置一个值2048。
由于MT_dialog