按照上一篇文章的接口定义连接鼠标标传感器 paw3395,SDK提供的样板程序“sel_mouse_with_dongle”能正常工作。
原样板程序中光标传感器采用查询模式工作,所以不需要连接 paw3395 的 motion 引脚。 通过USB工具程序发现鼠标不管有没有按键滚轮和光标数据一直不停的发送数据可以在程序中进行改进具体方法如下
修改程序“…samplespriductssle_mouse_with_donglesle_low_latency_service.c”中 void sle_mouse_get_key(void) 函数
void sle_mouse_get_key(void)
{
int8_t button_mask = 0;
int16_t x = 0;
int16_t y = 0;
int8_t wheel = 0;
sle_mouse_key_set(&button_mask, &x, &y, &wheel);
if(sle_mouse_data_is_empty(button_mask, x, y, wheel))
{ //
return;
}
g_mouse_notify_data.button_mask = button_mask;
g_mouse_notify_data.x = x;
g_mouse_notify_data.y = y;
g_mouse_notify_data.wheel = wheel;
g_ssap_notify_data.handle = SLE_MOUSE_SSAP_RPT_HANDLE;
g_ssap_notify_data.type = 0;
g_ssap_notify_data.value_len = sizeof(ssap_mouse_key_t);
g_ssap_notify_data.value = (uint8_t *)(&g_mouse_notify_data);
ssaps_notify_indicate(SLE_MOUSE_DEFAULT_SERVER_ID, SLE_MOUSE_DEFAULT_CONNECT_ID, &g_ssap_notify_data);
}
添加了空数据判断,如果为空直接 return; 。
空数据判断程序如下
static bool sle_mouse_data_is_empty(int8_t buttons, int16_t x, int16_t y, int8_t wheel)
{
if((!buttons) && (!x) && (!y) && (!wheel))
return true;
else
return false;
}
再次烧录测试 一切正常。
审核编辑:汤梓红
-
华为
+关注
关注
216文章
34417浏览量
251524 -
程序
+关注
关注
117文章
3785浏览量
81006 -
开发板
+关注
关注
25文章
5035浏览量
97383 -
SDK
+关注
关注
3文章
1035浏览量
45905 -
星闪
+关注
关注
6文章
118浏览量
588
发布评论请先 登录
相关推荐
评论