我按下按钮时如何通知?

2个职位/0个新职位
最后一篇文章
奥克梅吉
离线
最后一次见到:4年1个月前
已加入:2016-03-04 06:18
我按下按钮时如何通知?

嗨,我在韩国开发一个设备。

我使用的是DA14580开发工具包-专业版。
我开发的设备基于“SDK5,ble\u app\u peripheral example”

我的设备需要的功能,设备发送(或通知)的价值,智能手机“当我按下按钮”。
该值由“app\u easy\u timer(app\u PERIPHERAL\u CTRL\u timer\u DELAY,app\u adcval1\u timer\u cb\u handler)”更新
不是吗(如果您看到示例“user\u custs1\u impl.c”,您可以得到它)

我添加了按钮源代码来在

用户\u periph \u setup.c--->保留\u GPIO(按钮、GPIO \u按钮\u端口、GPIO \u按钮\u PIN、PID \u GPIO);
user\u periph\u setup.c--->GPIO\u ConfigurePin(GPIO\u BUTTON\u PORT,GPIO\u BUTTON\u PIN,INPUT\u PULLUP,PID\u GPIO,false);

用户\u periph\u setup.h--->
#定义GPIO\按钮\端口GPIO\端口\U 1
#定义GPIO\U按钮\U引脚GPIO\U引脚\U 1

用户\u custs1 \u impl.c--->
void app\u adcval1\u timer\u cb\u handler()
{
..
...
如果(!GPIO_GetPinStatus(GPIO_BUTTON_PORT,GPIO_BUTTON_PIN))//按下按钮时,发送消息(=通知)
{
发送消息(请求);
}
}
此函数使用“CUSTS1\u VAL\u NTF\u REQ:设置/更新特征值并触发通知”

你明白我的想法了吗?

在我更改“APP\u PERIPHERAL\u CTRL\u TIMER\u DELAY”之前,它运行得很好。

我需要“APP\u PERIPHERAL\u CTRL\u TIMER\u DELAY=1”而不是“100”(<--默认值)
因为设备需要非常快速地(尽快)读取从ADC采样的值

我将延迟值“1”改为“100”,在DK板上执行程序,然后用智能手机连接。
当我在“控制点值”处写“01”时,系统停止了。

调试器指向这里。

/**
****************************************************************************************
*@平台重置的简短包装。它将在软件重置前被调用
*从堆栈发出。可能的原因将包含在错误字段中
*@param[in]错误重置的原因。它将是以下之一:
*复位无错误,复位内存分配失败,复位到ROM,复位和加载固件
*@return一无所获。
****************************************************************************************
*/
无效包装平台重置(uint32错误)
{
断言警告(错误==更新后重置)//在SPOTA复位的情况下不要断开
平台复位功能(错误);
}

当我使用“APP\u PERIPHERAL\u CTRL\u TIMER\u DELAY=50”时,效果很好。
当我使用“APP\u PERIPHERAL\u CTRL\u TIMER\u DELAY=30”时,效果并不好。
当我按下按钮时,系统有时会停止。T\T。。。

我需要一个最快的ADC采样值,我想在按下按钮时通知该值。

按下按钮时如何发送采样值?
请帮帮我!

设备:
MT\u对话框
离线
最后一次见到:4个月2周前
工作人员
已加入:2015-06-08 11:34
嗨okmegi,

嗨okmegi,

这是因为您生成了更多可以使用的消息,所以堆会被填满,并且会调用platform\u reset。如果我理解正确,您希望每次按下按钮时,您的设备开始通过计时器向客户端发送数据。尝试更改(减少)连接间隔,以便频繁使用通知消息。

谢谢你的对话

主题已锁定