按照上一篇文章的接口定义连接鼠标标传感器 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文章
34558浏览量
253290 -
程序
+关注
关注
117文章
3798浏览量
81500 -
开发板
+关注
关注
25文章
5144浏览量
98435 -
SDK
+关注
关注
3文章
1048浏览量
46371 -
星闪
+关注
关注
8文章
124浏览量
703
发布评论请先 登录
相关推荐
如何搭建星闪BS25开发环境
![如何搭建<b class='flag-5'>星</b><b class='flag-5'>闪</b><b class='flag-5'>BS25</b><b class='flag-5'>开发</b>环境](https://file1.elecfans.com/web2/M00/B0/DF/wKgZomVYgKaABrx3AAAxAPrXgbQ655.png)
评论