你好,我对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_PERITELAL上粘贴在我身边的代码,并且一旦我启用通知并向控制点发出0x01,我就不会看到任何问题,我就不会看到任何问题,我就可以获得第一个您已粘贴并维护连接的字符串的20个字节。如果发生突然停止而不启用通知或甚至连接到设备,则此问题不是您正在执行的Mod,而是您在SDK或演示中拥有的其他内容。
晚上好,非常感谢你的帮助。如果我想要读取一个1000字节或更多的特征,我应该怎么做?我写了这个结构,但它一直停止运行struct sults1_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_PERITELAL上粘贴在我身边的代码,并且一旦我启用通知并向控制点发出0x01,我就不会看到任何问题,我就不会看到任何问题,我就可以获得第一个您已粘贴并维护连接的字符串的20个字节。如果发生突然停止而不启用通知或甚至连接到设备,则此问题不是您正在执行的Mod,而是您在SDK或演示中拥有的其他内容。
由于MT_dialog
晚上好,
非常感谢你的帮助。如果我想要读取一个1000字节或更多的特征,我应该怎么做?
我写了这个结构,但它一直停止运行
struct sults1_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