亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hal_usb_hid.c

?? 非常全的nrf2401設計資料
?? C
字號:
/* Copyright (c) 2007 Nordic Semiconductor. All Rights Reserved.
 *
 * The information contained herein is property of Nordic Semiconductor ASA.
 * Terms and conditions of usage are described in detail in NORDIC
 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. 
 *
 * Licensees are granted free, non-transferable use of the information. NO
 * WARRENTY of ANY KIND is provided. This heading must NOT be removed from
 * the file.
 *
 * $LastChangedRevision: 2290 $
 */ 

/** @file
 * Hardware Abstraction Layer for USB Human Interface Descriptors.
 * 
 * @author Ken A. Redergaard
 */

#include "hal_usb_hid.h"
#include "nordic_common.h"

static xdata uint8_t tmp_usb_buf[8];
static uint8_t tmp_usb_hid_protocol;

bool hal_usb_hid_device_req_proc(hal_usb_device_req* req, uint8_t** data_ptr, uint16_t* size, hal_usb_dev_req_resp_t* resp)
{
    bool retval = false;
    *resp = STALL;

    if(req->bRequest == USB_REQ_GET_DESCRIPTOR )
    {
        switch( MSB(req->wValue) )
        {
            case  USB_CLASS_DESCRIPTOR_REPORT:
                retval = true;

                *data_ptr = g_usb_hid_hids[LSB(req->wIndex)].hid_report_desc;
                *size = MIN(g_usb_hid_hids[LSB(req->wIndex)].hid_report_desc_size, LSB(req->wLength));
                *resp = DATA;
                break;
            case USB_CLASS_DESCRIPTOR_HID:
                retval = true;

                *data_ptr = (uint8_t*)g_usb_hid_hids[LSB(req->wIndex)].hid_desc;
                *size = MIN(sizeof(hal_usb_hid_desc_t), LSB(req->wLength));
                *resp = DATA;
                break;
            default:
                break;
        }
    } 
    else if( ( req->bmRequestType & 0x20 ) == 0x20 ) // This is a class specific request D5..6: Type Class(value 1)
    { 
        switch( req->bRequest )
        {
            case 0x01: // Get_Report
                retval = true;
                // For now we just send an "empty" report. No mousemoves, no mouse-key pressed.
                // TODO: This breaks the generic nature of usb.c. 
                // Have to create some global "default" reports in the template later.
                tmp_usb_buf[0] = tmp_usb_buf[1] = 0x00;
                *data_ptr = &tmp_usb_buf[0];
                *size = 0x03;
                *resp = DATA;
                break;
            case 0x02: // Get_Idle
                retval = true;
                *resp = STALL;
                break;
            case 0x0a: // Set_Idle
                retval = true;
                *resp = STALL;
                break;
            case 0x03: // Get_Protocol
                retval = true;
                tmp_usb_buf[0] = ( tmp_usb_hid_protocol & (1 << LSB(req->wIndex)) ) ? 0x01 : 0x00;
                *data_ptr = &tmp_usb_buf[0];
                *size = 0x01;
                *resp = DATA;
                break;
            case 0x0b: // Set_Protocol
                retval = true;
#if 1 // Right now we do not support setting of protocol in a intelligent way
                if( LSB(req->wValue) == 0x01 )
                {
                    tmp_usb_hid_protocol |= 1 << LSB(req->wIndex);
                }
                else
                {
                    tmp_usb_hid_protocol &= ~(1 << LSB(req->wIndex));
                }

                *resp = NAK;
#else
                *resp = EMPTY_RESPONSE;
#endif
                break;
            case 0x09: // Set_Report
                if( MSB(req->wValue) == 0x03 ) // Feature report
                {
                    retval = false;
                }
                else if ( MSB(req->wValue) == 0x02 ) // Output report
                {
                    // For now we just assume that the OUT packet is a keyboard report.
                    *resp =NAK;
                    retval = true;
                }
                break;
            default:
                break;
            }
    }

    return retval;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香啪啪综合成人亚洲小说| 欧洲在线/亚洲| 91麻豆精品国产91久久久| 欧美国产一区二区| 九色综合国产一区二区三区| 91精品国产一区二区三区蜜臀| 国产精品欧美综合在线| gogo大胆日本视频一区| 国产精品乱码久久久久久| 国产一区二区免费在线| 久久综合资源网| 成人免费看视频| 最近中文字幕一区二区三区| 91免费小视频| 日韩国产一区二| 精品国产免费一区二区三区香蕉| 精品一区二区三区久久久| 久久色.com| jiyouzz国产精品久久| 一区二区三区久久久| 欧美日韩一区二区三区四区| 美国十次了思思久久精品导航| 欧美一区二区三区思思人| 国产精品一区一区三区| 国产精品不卡在线| 欧美丰满高潮xxxx喷水动漫 | 日韩一区二区高清| 国产精品香蕉一区二区三区| 亚洲免费观看高清完整版在线观看熊| 色视频欧美一区二区三区| 麻豆精品在线看| 国产精品国产a| 久久综合五月天婷婷伊人| 色综合色综合色综合色综合色综合| 午夜精品一区二区三区免费视频| 久久精品欧美一区二区三区不卡| 色综合网色综合| 国产成都精品91一区二区三| 一区二区三区.www| 日本一区二区不卡视频| 欧美大黄免费观看| 在线国产亚洲欧美| 99视频一区二区| 国产在线精品一区在线观看麻豆| 亚洲成人福利片| 一区二区在线看| 亚洲欧美韩国综合色| 亚洲视频一区在线观看| 国产视频一区在线观看| 国产亚洲视频系列| 国产亚洲女人久久久久毛片| 精品1区2区在线观看| 精品国产免费人成在线观看| 91麻豆精品国产自产在线观看一区 | 亚洲乱码中文字幕| 亚洲黄色小视频| 一区二区三区中文字幕电影| 亚洲欧美偷拍三级| 亚洲综合无码一区二区| 香蕉av福利精品导航| 亚洲第一综合色| 亚洲不卡av一区二区三区| 天天操天天干天天综合网| 婷婷久久综合九色国产成人| 免费高清成人在线| 国产又粗又猛又爽又黄91精品| 高清免费成人av| 91免费版pro下载短视频| 欧美日韩一区三区| 26uuu国产日韩综合| 国产精品嫩草久久久久| 亚洲色图在线看| 美女一区二区三区在线观看| 91麻豆免费在线观看| 1区2区3区国产精品| 777奇米四色成人影色区| 日韩三级.com| 一区二区在线看| 极品少妇xxxx偷拍精品少妇| 色综合天天综合| 亚洲精品一区二区三区蜜桃下载| 亚洲免费伊人电影| 精品一区二区三区欧美| 欧美无人高清视频在线观看| 久久精品视频网| 丝袜亚洲另类欧美| 97久久超碰国产精品| www日韩大片| 日日摸夜夜添夜夜添精品视频| 成人性生交大合| 欧美日韩在线亚洲一区蜜芽| 中文字幕精品一区二区三区精品| 亚洲综合色婷婷| 91在线免费看| 国产精品成人免费在线| 国产成人免费av在线| 精品久久久久久无| 久久精品国产精品青草| 欧美日本一区二区在线观看| 一区二区三区在线免费观看 | 久久99精品国产.久久久久久| 欧美亚洲免费在线一区| 亚洲精品免费在线| 色综合久久88色综合天天免费| 国产精品午夜春色av| 成人夜色视频网站在线观看| 久久久九九九九| 丁香婷婷综合网| 樱花影视一区二区| 日韩一区和二区| 国产精品一区二区三区网站| 国产亚洲成av人在线观看导航 | 色婷婷综合久久久中文一区二区 | 天堂影院一区二区| 91精品国产高清一区二区三区蜜臀| 亚洲国产另类av| 日韩欧美色综合网站| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲蜜臀av乱码久久精品蜜桃| 色94色欧美sute亚洲线路一ni| 亚洲图片一区二区| 久久嫩草精品久久久精品| 91视频免费看| 老司机精品视频导航| 亚洲国产精品99久久久久久久久| 91在线视频免费观看| 美女视频网站黄色亚洲| 中文幕一区二区三区久久蜜桃| 日本韩国欧美三级| 国产尤物一区二区在线| 午夜精品久久久久久久99樱桃 | 欧美日韩一区视频| 99这里都是精品| 国产精品一线二线三线精华| 亚洲综合另类小说| 中文av一区二区| 精品国产乱码久久久久久1区2区 | 亚洲人快播电影网| 国产亚洲污的网站| 久久青草欧美一区二区三区| 欧美嫩在线观看| 欧美亚洲高清一区二区三区不卡| 国产99久久久国产精品潘金| 九色|91porny| 欧美a级一区二区| 亚洲v精品v日韩v欧美v专区| 一区二区在线观看视频| 亚洲人成网站色在线观看| 中文字幕精品一区二区精品绿巨人 | 久久精品亚洲麻豆av一区二区| 欧美丝袜丝交足nylons| 中文字幕一区不卡| 欧美日韩精品一区视频| 欧美婷婷六月丁香综合色| 国产suv精品一区二区三区| 成人精品一区二区三区四区| 黄色成人免费在线| 成人性视频免费网站| av资源网一区| 欧美日韩一区二区三区四区五区| 欧美日精品一区视频| 日韩你懂的在线观看| 久久久精品影视| 亚洲欧美偷拍三级| 日日夜夜精品视频免费| 国产成人一区在线| 色综合久久综合中文综合网| 欧美色图一区二区三区| 日韩亚洲欧美一区| 国产精品久久毛片a| 午夜精品福利一区二区三区蜜桃| 久久电影网站中文字幕| 99久久er热在这里只有精品15 | 欧美午夜精品一区| 日韩一区二区三区视频在线| 国产精品电影一区二区| 奇米在线7777在线精品| 成人av在线播放网址| 91精品国产美女浴室洗澡无遮挡| 久久精品一区二区三区不卡牛牛| 亚洲一区二区三区影院| 国产精品自在欧美一区| 91精品一区二区三区久久久久久 | 欧美aaaaaa午夜精品| 在线看日本不卡| 国产精品久久久久久久久久久免费看 | 99久久精品免费看国产| 精品1区2区在线观看| 日韩电影免费在线观看网站| 在线观看中文字幕不卡| 综合电影一区二区三区| 国产精品1区2区3区在线观看| 欧美久久久久久蜜桃| 一区二区三区四区在线播放 | 日韩欧美亚洲国产精品字幕久久久| 一区二区三区在线播| 91黄视频在线| 亚洲国产一区二区三区| 色噜噜狠狠色综合欧洲selulu| 国产精品每日更新在线播放网址|