你好我不熟悉ble数据传输。我正在尝试通过读取特征将数据从我的da14585发送到我的手机。当我初始化超过320字节的字符数组时,程序停止运行。我在构建它时没有收到警告或错误。我想发送1-2 KB的数据。先谢谢你
你好marios256,
当你提到你初始化320字节的字符数组时,你到底是怎么做的?也许您的代码最终会出现硬故障或出现在NMI处理程序中,如果您从keil运行设备并使用调试器,那么这应该很容易跟踪。如果希望具有250字节大小的可读特性,则应在user_custs1_def.h文件中声明,例如,您可以使用ADC 2特性进行尝试,然后,如果要将该特性设置为特定值,则必须发送CUSTS1_VAL_set_REQ消息,并在句柄和结构中的长度字段中进行适当配置,然后发送该消息,以便自定义配置文件将该值设置为自定义数据库。
谢谢你的对话
你好在我初始化的user_custs1_def.h文件中:#定义def_user_LED_STATE_CHAR_LEN 400作为示例。然后,在user_custs1_impl.c中,我创建了这个处理程序:void app_adcval1_timer_cb_handler(){结构custs1_val_ntf_ind_req*req=KE_MSG_ALLOC_DYN(custs1_val_ntf_req,prf_从_id获取_任务_(任务_id_CUSTS1),任务应用程序,客户1_val_ntf_ind_req,定义用户指示灯(状态字符);静态字符样本[400]="这幅画被认为是弗朗西斯科·德尔·吉奥孔多(Francesco del Giocondo)的妻子丽莎·格拉迪尼(Lisa Ghrardini)的肖像,在伦巴第白杨木镶板上涂油。据信这幅画是在1503年至1506年间绘制的;然而,莱昂纳多可能一直持续到1517年才开始创作。最近的学术研究表明,这幅画不会在这之前开始1513年,它被法国国王弗朗西斯一世收购”;req->handle=USER\u IDX\u LED\u STATE\u VAL;req->length=DEF\U USER\U LED\U STATE\U CHAR\U LEN;
请求->通知=true;memcpy(请求->值和样本,定义用户状态字符);ke_msg_send(req);}
因此,当我进入调试会话并按下run按钮时,它突然停止。我看不到任何警告或错误。多谢各位!
您使用的消息是发送通知,而不仅仅是更改数据库中的值以便中心读取,在发送通知时,只有前20个字节将被修改,除非您将MTU更改为要传输的大小。复制了您粘贴在我这边的代码,在ble_app_外围设备上使用了您已经完成的确切mods,我看不到任何问题,一旦我启用通知并向控制点发出0x01,我就能够获得您粘贴的字符串的前20个字节并维护连接。如果在未启用通知甚至未连接到设备的情况下突然停止,那么问题不在于您正在执行的mod,而在于SDK或演示中的其他内容。
晚上好非常感谢你帮助我。所以,如果我只想读取一个传输1000字节或更多字节的特征,我应该怎么做?我写了这个结构,但它一直停止运行结构custs1\u val\u set\u req*req=KE_MSG\u ALLOC(custs1\u val\u set\u req,prf\u从任务id获取任务(任务id\u custs1),任务应用程序,custs1\u val\u set\u req);req->handle=USER\u IDX\u LED\u STATE\u VAL;req->length=DEF\U USER\U LED\U STATE\U CHAR\U LEN;静态字符样本[400]="这幅画被认为是弗朗西斯科·德尔·吉奥孔多(Francesco del Giocondo)的妻子丽莎·格拉迪尼(Lisa Ghrardini)的肖像,在伦巴第白杨木镶板上涂油。据信这幅画是在1503年至1506年间绘制的;然而,莱昂纳多可能一直持续到1517年才开始创作。最近的学术研究表明,这幅画不会在这之前开始1513年,它被法国国王弗朗西斯一世收购”;memcpy(请求->值和样本,定义用户状态字符);发送消息(请求);我注意到,当我在350-400左右的user_custs1_def.h#define def_user_LED_STATE_CHAR_LEN中初始化时,问题就出现了。如果我在300初始化它,它就可以正常工作。提前谢谢!
你好marios256。
发送更多通知,只需发送第一个批量,然后在确认通知已成功存储在传输缓冲区后,发送第二个通知。无论何时发送通知,您都会收到一个CUSTS1_VAL_NTF_CFM(用于自定义配置文件),一旦收到该通知,您就会知道刚刚发送的通知将被发送到中心,因此您可以直接放置第二个通知。
关于停止运行,当您增加特征的大小时,可能会点击平台重置,尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以放置一个值2048。
你好marios256,
当你提到你初始化320字节的字符数组时,你到底是怎么做的?也许您的代码最终会出现硬故障或出现在NMI处理程序中,如果您从keil运行设备并使用调试器,那么这应该很容易跟踪。如果希望具有250字节大小的可读特性,则应在user_custs1_def.h文件中声明,例如,您可以使用ADC 2特性进行尝试,然后,如果要将该特性设置为特定值,则必须发送CUSTS1_VAL_set_REQ消息,并在句柄和结构中的长度字段中进行适当配置,然后发送该消息,以便自定义配置文件将该值设置为自定义数据库。
谢谢你的对话
你好
在我初始化的user_custs1_def.h文件中:#定义def_user_LED_STATE_CHAR_LEN 400作为示例。然后,在user_custs1_impl.c中,我创建了这个处理程序:
void app_adcval1_timer_cb_handler()
{
结构custs1_val_ntf_ind_req*req=KE_MSG_ALLOC_DYN(custs1_val_ntf_req,
prf_从_id获取_任务_(任务_id_CUSTS1),
任务应用程序,
客户1_val_ntf_ind_req,
定义用户指示灯(状态字符);
静态字符样本[400]="这幅画被认为是弗朗西斯科·德尔·吉奥孔多(Francesco del Giocondo)的妻子丽莎·格拉迪尼(Lisa Ghrardini)的肖像,在伦巴第白杨木镶板上涂油。据信这幅画是在1503年至1506年间绘制的;然而,莱昂纳多可能一直持续到1517年才开始创作。最近的学术研究表明,这幅画不会在这之前开始1513年,它被法国国王弗朗西斯一世收购”;
req->handle=USER\u IDX\u LED\u STATE\u VAL;
req->length=DEF\U USER\U LED\U STATE\U CHAR\U LEN;
请求->通知=true;
memcpy(请求->值和样本,定义用户状态字符);
ke_msg_send(req);}
因此,当我进入调试会话并按下run按钮时,它突然停止。我看不到任何警告或错误。
多谢各位!
你好marios256,
您使用的消息是发送通知,而不仅仅是更改数据库中的值以便中心读取,在发送通知时,只有前20个字节将被修改,除非您将MTU更改为要传输的大小。复制了您粘贴在我这边的代码,在ble_app_外围设备上使用了您已经完成的确切mods,我看不到任何问题,一旦我启用通知并向控制点发出0x01,我就能够获得您粘贴的字符串的前20个字节并维护连接。如果在未启用通知甚至未连接到设备的情况下突然停止,那么问题不在于您正在执行的mod,而在于SDK或演示中的其他内容。
谢谢你的对话
晚上好
非常感谢你帮助我。所以,如果我只想读取一个传输1000字节或更多字节的特征,我应该怎么做?
我写了这个结构,但它一直停止运行
结构custs1\u val\u set\u req*req=KE_MSG\u ALLOC(custs1\u val\u set\u req,prf\u从任务id获取任务(任务id\u custs1),任务应用程序,custs1\u val\u set\u req);
req->handle=USER\u IDX\u LED\u STATE\u VAL;
req->length=DEF\U USER\U LED\U STATE\U CHAR\U LEN;
静态字符样本[400]="这幅画被认为是弗朗西斯科·德尔·吉奥孔多(Francesco del Giocondo)的妻子丽莎·格拉迪尼(Lisa Ghrardini)的肖像,在伦巴第白杨木镶板上涂油。据信这幅画是在1503年至1506年间绘制的;然而,莱昂纳多可能一直持续到1517年才开始创作。最近的学术研究表明,这幅画不会在这之前开始1513年,它被法国国王弗朗西斯一世收购”;
memcpy(请求->值和样本,定义用户状态字符);
发送消息(请求);
我注意到,当我在350-400左右的user_custs1_def.h#define def_user_LED_STATE_CHAR_LEN中初始化时,问题就出现了。如果我在300初始化它,它就可以正常工作。
提前谢谢!
你好marios256。
发送更多通知,只需发送第一个批量,然后在确认通知已成功存储在传输缓冲区后,发送第二个通知。无论何时发送通知,您都会收到一个CUSTS1_VAL_NTF_CFM(用于自定义配置文件),一旦收到该通知,您就会知道刚刚发送的通知将被发送到中心,因此您可以直接放置第二个通知。
关于停止运行,当您增加特征的大小时,可能会点击平台重置,尝试从da1458x_config_advanced定义并增加DB_HEAP_SZ,例如,您可以放置一个值2048。
谢谢你的对话