华为星闪SLE开发板BS25和SDK初探2

描述

按照上一篇文章的接口定义连接鼠标标传感器 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;

}

再次烧录测试    一切正常。            

  审核编辑:汤梓红          

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分