嗨,我正在开发韩国的设备。
我正在使用DA14580开发套件 - 专业版。
我开发了基于“SDK5,BLE_APP_PERIANTAL示例”的设备
我的设备需要该设备在我按下按钮时将值发送(或通知)到智能手机的功能。
该值由“app_easy_timer(app_peripheral_ctrl_timer_delay,app_adcval1_timer_cb_handler)更新
不是吗?(如果您看到示例,'user_custs1_impl.c',您可以得到它)
我添加了按钮源代码来使用它
user_periph_setup.c ----> letaent_gpio(push_button,gpio_button_port,gpio_button_pin,pid_gpio);
user_periph_setup.c---> gpio_configurepin(gpio_button_port,gpio_button_pin,input_pullup,pid_gpio,false);
user_periph_setup.h ---->
#define gpio_button_port gpio_port_1.
#define gpio_button_pin gpio_pin_1.
user_custs1_impl.c ---->
void app_adcval1_timer_cb_handler()
{
..
......
如果(!gpio_getpinstatus(gpio_getton_port,gpio_button_pin)//按下按钮时,请发送消息(= notify)
{
KE_MSG_SEND(REQ);
}
}
此功能使用“custs1_val_ntf_req:set /更新特征值并触发通知”
你抓住了我的思考吗?
在我更改“app_peripheral_ctrl_timer_delay”之前,它运行良好。
我需要“app_peripheral_ctrl_timer_delay = 1”而不是“100”(< - 默认值)
因为设备需要非常快速地读取从ADC采样的值(尽快)
我更改了延迟值'1'而不是'100',并在DK板上执行程序,然后使用智能手机连接它。
当我在“控制点值”处写'01'时,系统会停止。
调试器指出。
/ **
****************************************************************************************
* @brief包装的平台重置。它将在软件重置之前调用它
*从堆栈发出。可能的原因将包含在错误字段中
* @param [in]错误重置的原因。它将是以下之一:
* reset_no_error,reset_mem_alloc_fail,reset_to_rom,reset_and_load_fw
* @return什么都没有。
****************************************************************************************
* /
void wrap_platform_reset(UINT32_T错误)
{
assert_warning(错误== reset_after_spota_update);//在Spota重置的情况下不要破坏
platform_reset_func(错误);
}
当我使用“app_peripheral_ctrl_timer_delay = 50”时,它运行良好。
当我使用“app_peripheral_ctrl_timer_delay = 30”时,它不太好。
当我按下按钮时,有时系统会停止。t_t ...
我需要最快的ADC采样值,并且我想在推动按钮时通知该值。
我按下按钮时如何发送采样值?
请帮我 !
嗨okmegi,
这发生了,因为您生成了可以消耗的更多消息,因此您的堆填满,并调用platform_reset。如果我正确地了解,每次按下按钮都会通过计时器开始向客户端向客户端发送数据。尝试更改(减少)连接间隔以频繁地消耗的通知消息。
谢谢mt_dialog.