新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 初學者USB技術入門總結

        初學者USB技術入門總結

        作者: 時間:2012-04-19 來源:網絡 收藏
        BR> Misceronous status variable initialization
        ------------------------------------------------------------*/
        usb_status.configuration = NULL;
        usb_status.remote_wakeup = 0;
        usb_status.address = 0;
        usb_status.dvcstate = DEFAULT_STATE; /* Device state :DEFAULT */
        usb_status.stall_req = 0;
        #ifdef Debug
        test[conters]='!';
        conters++;
        #endif

        /*------------------------------------------------------------
        Callback to application layer
        ------------------------------------------------------------*/
        (*usb_status.callback)();
        }
        else if (SUSPENDED_INT())
        { /* suspended state */
        /* for USB Rev.1.1
        Transit to suspended state after detect the USB line has kept idle over 3msec.
        After resume detected, end suspend state in 3msec to be able to respond
        the host request.
        */
        CLR_SUSPENDED_STATE();
        #ifdef Debug
        test[conters]='@';
        conters++;
        #endif

        }

        else if (AWAKE_INT())
        { /* Deveice awake state */
        /* AWAKE procedure */

        CLR_AWAKE_STATE(); /* Request clear */
        #ifdef Debug
        test[conters]='#';
        conters++;
        #endif

        }
        else if (USB_BUSRESET_DES_INT())
        { /* USB bus reset deassert */
        /* Procedure for USB bus reset de-assert */

        CLR_BUS_RESET_DES_STATE(); /* Request clear */
        #ifdef Debug
        test[conters]='$';
        conters++;
        #endif

        }

        else if (SOF_INT())
        { /* SOF interrupt status */
        CLR_B_SOF_STATE();
        #ifdef Debug
        test[conters]='%';
        conters++;
        #endif
        /* SOF interrupt status clear */
        } /* SOF interrupt status */

        if (SETUP_RDY_INT())
        { /* setup ready */
        #ifdef Debug
        test[conters]='^';
        conters++;
        #endif

        read_Device_Requests();
        }

        else if(EP1_PKTRDY_INT())
        { /* EP1 packet ready */
        read_FIFO(EP1);
        }
        else if (EP2_PKTRDY_INT())
        { /* EP2 packet ready */

        write_FIFO(EP2);
        }

        else if (EP0_RXPKTRDY_INT())
        { /* EP0 receive packet ready */
        read_FIFO(EP0RX);
        }
        else if (EP0_TXPKTRDY_INT())
        { /* EP0 transmit packet ready */
        write_FIFO(EP0TX);
        }

        }
        計錄的結果在變量查看中顯示如下:

        首先我解



        關鍵詞: USB技術 入門總結

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 垫江县| 水城县| 呼伦贝尔市| 延川县| 陆良县| 天镇县| 弋阳县| 察雅县| 西和县| 铁岭市| 宝丰县| 泸定县| 尼木县| 游戏| 阜阳市| 临沭县| 德安县| 绥化市| 东宁县| 新乐市| 剑阁县| 高密市| 抚远县| 东乌| 沅陵县| 桐庐县| 固安县| 大邑县| 涡阳县| 府谷县| 北票市| 盐边县| 若羌县| 望江县| 揭西县| 洛扎县| 阿克陶县| 闵行区| 新泰市| 高唐县| 汝南县|