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

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

?? vcomuser.lst

?? 基于LPC214X的usb虛擬串口程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 1   


ARM COMPILER V2.50a, COMPILATION OF MODULE VCOMuser
OBJECT MODULE PLACED IN .\Obj\VCOMuser.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe VCOMuser.c THUMB DEFINE(MCB2140) DEBUG PRINT(.\LST\VCOMUSER.LST) TABS(4) OBJ
                    -ECT(.\Obj\VCOMuser.obj) 

stmt  level    source

    1          /*----------------------------------------------------------------------------
    2           *      U S B  -  K e r n e l
    3           *----------------------------------------------------------------------------
    4           *      Name:    vcomuser.c
    5           *      Purpose: Virtual COM custom user module file for Philips LPC214x Family 
    6           *      Microprocessors
    7           *      Version: V1.04
    8           *----------------------------------------------------------------------------
    9           *      This software is supplied "AS IS" without any warranties, express, 
   10           *      implied or statutory, including but not limited to the implied 
   11           *      warranties of fitness for purpose, satisfactory quality and 
   12           *      noninfringement. Keil extends you a royalty-free right to reproduce and
   13           *      distribute executable files created using this software for use on 
   14           *      Philips LPC2xxx microcontroller devices only. Nothing else gives you the 
   15           *      right to use this software. 
   16           *
   17           *      Copyright (c) 2005 Keil Software.
   18           *      Modified by Philips Semiconductor
   19           *---------------------------------------------------------------------------*/
   20          #include <string.h>
   21          #include <LPC214x.h>                        /* LPC214x definitions */
   22          
   23          #include "type.h"
   24          #include "usb.h"
   25          #include "usbhw.h"
   26          #include "usbcfg.h"
   27          #include "usbcore.h"
   28          #include "vcomuser.h"
   29          #include "demo.h"
   30          
   31          #define CR     0x0D
   32          
   33          static BYTE KeyPressed = 0;
   34          
   35          BYTE ReportStatus0 = 0, ReportStatus1 = 0;
   36          BYTE Data2Host0 = 0, Data2Host1 = 0;
   37          
   38          #if USB_VCOM
   39          BYTE RxLength0, RxLength1;
   40          
   41          BYTE  USB2UARTBuf0[USB_MAX_PACKET0];
   42          BYTE  USB2UARTBuf1[USB_MAX_PACKET0];
   43          
   44          BYTE  UART2USBBuf0[USB_MAX_PACKET0];
   45          BYTE  UART2USBBuf1[USB_MAX_PACKET0];
   46          
   47          /* if the portNum is 0, EP1 is the endpoints for 
   48          STATUS IN, EP2 EP is BULK IN, BULK OUT and UART0 Virtual COM port.
   49             if the portNum is 1, EP4 is the endpoints for 
   50          STATUS IN, EP5 is BULK IN, BULK OUT and UART1 Virtual COM port */
   51          
   52          void DeviceData2UART( BYTE portNum )
   53          {
   54   1      #if NO_UART_CABLE
                 DWORD cnt;
               #else
   57   1        DWORD cnt, i;
   58   1      #endif
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 2   

   59   1        BYTE *pData;
   60   1      
   61   1        if ( portNum == 0 ) {
   62   2          pData = &USB2UARTBuf0[0];
   63   2          cnt = USB_ReadEP(0x02, pData);
   64   2      #if NO_UART_CABLE
                   if (*pData & 0x01) IOSET1 = LED1; else IOCLR1 = LED1;
                   if (*pData & 0x02) IOSET1 = LED2; else IOCLR1 = LED2;
                   if (*pData & 0x04) IOSET1 = LED3; else IOCLR1 = LED3;
                   if (*pData & 0x08) IOSET1 = LED4; else IOCLR1 = LED4;
                   if (*pData & 0x10) IOSET1 = LED5; else IOCLR1 = LED5;
                   if (*pData & 0x20) IOSET1 = LED6; else IOCLR1 = LED6;
                   if (*pData & 0x40) IOSET1 = LED7; else IOCLR1 = LED7;
                   if (*pData & 0x80) IOSET1 = LED8; else IOCLR1 = LED8;
               #else
   74   2          for ( i = 0; i < cnt; i++ ) {
   75   3              putchar( portNum, (BYTE)*pData );
   76   3              pData++;
   77   3          }
   78   2      #endif
   79   2        }
   80   1        else if ( portNum == 1 ) {
   81   2          pData = &USB2UARTBuf1[0];
   82   2          cnt = USB_ReadEP(0x05, pData);
   83   2      #if NO_UART_CABLE
                   if (*pData & 0x01) IOSET1 = LED1; else IOCLR1 = LED1;
                   if (*pData & 0x02) IOSET1 = LED2; else IOCLR1 = LED2;
                   if (*pData & 0x04) IOSET1 = LED3; else IOCLR1 = LED3;
                   if (*pData & 0x08) IOSET1 = LED4; else IOCLR1 = LED4;
                   if (*pData & 0x10) IOSET1 = LED5; else IOCLR1 = LED5;
                   if (*pData & 0x20) IOSET1 = LED6; else IOCLR1 = LED6;
                   if (*pData & 0x40) IOSET1 = LED7; else IOCLR1 = LED7;
                   if (*pData & 0x80) IOSET1 = LED8; else IOCLR1 = LED8;
               #else
   93   2          for ( i = 0; i < cnt; i++ ) {
   94   3              putchar( portNum, (BYTE)*pData );
   95   3              pData++;
   96   3          }
   97   2      #endif  
   98   2        }
   99   1        return;
  100   1      }
  101          
  102          void DeviceData2Host( BYTE portNum )
  103          {
  104   1      #if NO_UART_CABLE
                 const BYTE msg[] = "INT1 pressed\r\n";
                 BYTE length;
               #endif
  108   1      
  109   1        if ( portNum == 0 ) {
  110   2      #if NO_UART_CABLE
                   if ((IOPIN0 & S2) == 0 && !KeyPressed )             /* Check if S2 is pressed */
                   {
                       KeyPressed = 1;
                       length = strlen(msg);
                       memcpy( UART2USBBuf0, msg, length );
                       USB_WriteEP(0x80 | 0x02, &UART2USBBuf0[0], length );
                       KeyPressed = 0;
               //      Data2Host0 = 0;
                   }
               #else
  121   2          /* if the RX buffer is not empty, suck in data from UART0 */
  122   2          if ( ((U0LSR & 0x01) == 1) && (RxLength0 < USB_VCOM_BUFSIZE) ) {
  123   3              UART2USBBuf0[RxLength0] = getchar( portNum );
  124   3              RxLength0++;
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 3   

  125   3          }
  126   2          else if ( (RxLength0 == USB_VCOM_BUFSIZE) ) {
  127   3              USB_WriteEP(0x80 | 0x02, &UART2USBBuf0[0], USB_VCOM_BUFSIZE );
  128   3              RxLength0 = 0;
  129   3          }
  130   2      #endif
  131   2        }
  132   1        else if ( portNum == 1 )
  133   1        {
  134   2      #if NO_UART_CABLE
                   if ((IOPIN0 & S2) == 0 && !KeyPressed )             /* Check if S2 is pressed */
                   {
                       KeyPressed = 1;
                       length = strlen(msg);
                       memcpy( UART2USBBuf1, msg, length );
                       USB_WriteEP(0x80 | 0x05, &UART2USBBuf1[0], length ); 
                       KeyPressed = 0;
                       Data2Host1 = 0;
                   }
               #else
  145   2          /* if the RX buffer is not empty, suck in data from UART1 */
  146   2          if ( ((U1LSR & 0x01) == 1) && (RxLength1 < USB_VCOM_BUFSIZE) ) {
  147   3              UART2USBBuf1[RxLength1] = getchar( portNum );
  148   3              RxLength1++;
  149   3          }
  150   2          else if ( (RxLength1 == USB_VCOM_BUFSIZE) ) {
  151   3              USB_WriteEP(0x80 | 0x05, &UART2USBBuf1[0], USB_VCOM_BUFSIZE );
  152   3              RxLength1 = 0;
  153   3          }
  154   2      #endif  
  155   2        }
  156   1        return;
  157   1      }
  158          #endif
  159          
  160          /*
  161           *  USB Power Event Callback
  162           *    Parameter:       power: On(TRUE)/Off(FALSE)
  163           */
  164          
  165          #if USB_POWER_EVENT
               void USB_Power_Event (BOOL  power) {
                 power;
               }
               #endif
  170          
  171          
  172          /*
  173           *  USB Reset Event Callback
  174           */
  175          
  176          #if USB_RESET_EVENT
  177          void USB_Reset_Event (void) {
  178   1        USB_ResetCore();
  179   1      }
  180          #endif
  181          
  182          
  183          /*
  184           *  USB Suspend Event Callback
  185           */
  186          
  187          #if USB_SUSPEND_EVENT
               void USB_Suspend_Event (void) {
               }
               #endif
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 4   

  191          
  192          
  193          /*
  194           *  USB Resume Event Callback
  195           */
  196          
  197          #if USB_RESUME_EVENT
               void USB_Resume_Event (void) {
               }
               #endif
  201          
  202          
  203          /*
  204           *  USB Remote Wakeup Event Callback
  205           */
  206          
  207          #if USB_WAKEUP_EVENT
               void USB_WakeUp_Event (void) {
               }
               #endif
  211          
  212          
  213          /*
  214           *  USB Start of frame Event Callback
  215           *    Parameter:       frame: 11-bit Frame Number
  216           */
  217          
  218          #if USB_SOF_EVENT
               void USB_SOF_Event (DWORD frame) {
                 frame;
               }
               #endif
  223          
  224          
  225          /*
  226           *  USB Error Event Callback
  227           *    Parameter:       error: Error Code
  228           */
  229          
  230          #if USB_ERROR_EVENT
               void USB_Error_Event (DWORD error) {
                 error;
               }
               #endif
  235          
  236          /*
  237           *  USB Set Configuration Event Callback
  238           */
  239          #if USB_CONFIGURE_EVENT
  240          void USB_Configure_Event (void) {
  241   1        if (USB_Configuration) {             /* Check if USB is configured */
  242   2          ReportStatus0 = ReportStatus1 = 1;
  243   2          Data2Host0 = Data2Host1 = 1;
  244   2        }
  245   1      }
  246          #endif
  247          
  248          /*
  249           *  USB Set Interface Event Callback
  250           */
  251          
  252          #if USB_INTERFACE_EVENT
               void USB_Interface_Event (void) {
               }
               #endif
  256          
ARM COMPILER V2.50a,  VCOMuser                                                             14/02/06  09:59:08  PAGE 5   

  257          /*
  258           *  USB Set/Clear Feature Event Callback
  259           */
  260          
  261          #if USB_FEATURE_EVENT
               void USB_Feature_Event (void) {
               }
               #endif
  265          
  266          
  267          #define P_EP(n) ((USB_EP_EVENT & (1 << (n))) ? USB_EndPoint##n : NULL)
  268          
  269          /* USB Endpoint Events Callback Pointers */
  270          const void (* USB_P_EP[16]) (DWORD event) = {
  271            P_EP(0),
  272            P_EP(1),
  273            P_EP(2),
  274            P_EP(3),
  275            P_EP(4),
  276            P_EP(5),
  277            P_EP(6),
  278            P_EP(7),
  279            P_EP(8),
  280            P_EP(9),
  281            P_EP(10),
  282            P_EP(11),
  283            P_EP(12),
  284            P_EP(13),
  285            P_EP(14),
  286            P_EP(15),
  287          };
  288          
  289          /*
  290           *  USB Endpoint 1 Event Callback
  291           *    Parameter:       event
  292           */
  293          
  294          void USB_EndPoint1 (DWORD event) {
  295   1        event;
  296   1      }
  297          
  298          /*
  299           *  USB Endpoint 2 Event Callback
  300           *    Parameter:       event
  301           */
  302          
  303          void USB_EndPoint2 (DWORD event) {
  304   1        switch (event) {
  305   2          case USB_EVT_IN:
  306   2            Data2Host0 = 1;
  307   2            break;
  308   2          case USB_EVT_OUT:
  309   2            DeviceData2UART( 0 );
  310   2            break;
  311   2        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久99精品| 国产一区二区三区美女| 蜜桃精品视频在线| 一本色道a无线码一区v| 欧美成人在线直播| 亚洲国产日韩a在线播放| 精品一区二区日韩| 欧美日韩免费高清一区色橹橹| 欧美成人精品高清在线播放 | 日韩欧美一级精品久久| 亚洲手机成人高清视频| 国产精品亚洲成人| 日韩视频一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 国产成+人+日韩+欧美+亚洲| 51午夜精品国产| 丝袜亚洲精品中文字幕一区| 日本高清免费不卡视频| 一色屋精品亚洲香蕉网站| 国产99久久久国产精品免费看| 精品国产乱码久久久久久图片| 五月天一区二区| 欧美美女喷水视频| 麻豆视频观看网址久久| 在线观看不卡视频| 亚洲精品福利视频网站| 99精品一区二区三区| 日本一区免费视频| 国产不卡在线一区| 日本一区二区三区国色天香 | 亚洲va欧美va国产va天堂影院| 91小视频免费观看| 国产精品护士白丝一区av| 丁香激情综合五月| 国产精品久久久久久久久久久免费看| 国产电影一区在线| 国产精品欧美一区喷水| 97精品国产露脸对白| 亚洲免费观看高清完整版在线| 色噜噜狠狠一区二区三区果冻| 亚洲欧美在线视频观看| 91国在线观看| 午夜在线电影亚洲一区| 欧美电影免费观看高清完整版在 | 亚洲乱码国产乱码精品精小说 | 亚洲桃色在线一区| 91福利国产精品| 午夜电影网一区| 精品日韩在线观看| 粉嫩一区二区三区在线看| 亚洲黄色尤物视频| 欧美精品免费视频| 国产精品性做久久久久久| 亚洲欧洲日产国码二区| 色婷婷综合久久久中文字幕| 婷婷国产在线综合| 久久久久久97三级| 在线观看视频91| 韩国av一区二区三区在线观看| 国产无人区一区二区三区| 色综合天天综合色综合av| 日韩一区精品视频| 国产人成亚洲第一网站在线播放| 91亚洲精品久久久蜜桃网站 | 国产91高潮流白浆在线麻豆| 亚洲欧美一区二区三区国产精品| 欧美日韩一区成人| 国产成人在线色| 亚洲影视在线观看| 亚洲国产精品高清| 欧美色综合天天久久综合精品| 九九久久精品视频| 亚洲一区二区在线免费看| 精品精品欲导航| 欧美亚洲另类激情小说| 国产乱码精品1区2区3区| 亚洲综合激情小说| 国产无遮挡一区二区三区毛片日本| 91黄色小视频| 国产精品996| 美女视频一区二区| 一区二区三区中文免费| 久久老女人爱爱| 在线综合亚洲欧美在线视频| 91麻豆精品视频| 韩国女主播成人在线| 五月天激情综合网| 亚洲精品视频在线看| 国产欧美综合在线观看第十页| 欧美日韩一卡二卡| 99精品视频一区| 国产99久久久国产精品潘金网站| 日本特黄久久久高潮| 亚洲精品免费电影| 国产精品久久久久久户外露出| 日韩精品最新网址| 欧美丰满一区二区免费视频| 欧美做爰猛烈大尺度电影无法无天| 国产一区二区看久久| 美女视频黄 久久| 亚洲 欧美综合在线网络| 国产精品大尺度| 国产日韩欧美麻豆| 久久精品视频一区二区三区| 欧美福利视频导航| 9191精品国产综合久久久久久| 色94色欧美sute亚洲线路一久| av欧美精品.com| www.一区二区| 成人国产精品免费观看视频| 成人午夜免费视频| 成人综合在线观看| 成人中文字幕合集| 不卡在线视频中文字幕| 成人免费高清在线| 99re亚洲国产精品| 色婷婷精品久久二区二区蜜臀av| 日本二三区不卡| 一本色道久久综合亚洲精品按摩| 99视频国产精品| 色悠久久久久综合欧美99| 欧美性xxxxx极品少妇| 一本久道久久综合中文字幕| 在线视频综合导航| 欧美日韩亚洲综合在线| 欧美日韩第一区日日骚| 日韩欧美在线一区二区三区| 日韩精品中午字幕| 日本一区二区高清| 亚洲视频一二三| 亚洲成人激情av| 激情图区综合网| 成人午夜视频免费看| 色成年激情久久综合| 欧美日韩电影一区| 久久先锋影音av鲁色资源网| 国产精品卡一卡二| 亚洲午夜电影网| 精品一区二区在线观看| 成人免费黄色在线| 欧美人狂配大交3d怪物一区 | 韩日av一区二区| 不卡一卡二卡三乱码免费网站| 91高清在线观看| 精品国产一区二区精华| 中文字幕在线一区| 视频在线观看91| 国产另类ts人妖一区二区| 91色婷婷久久久久合中文| 91精品国产欧美一区二区18| 国产色产综合产在线视频| 一区二区三区国产精华| 久久99日本精品| 91国偷自产一区二区使用方法| 日韩精品一区二区三区蜜臀| 国产精品麻豆久久久| 免费亚洲电影在线| 91美女视频网站| 欧美精品一区二区三| 亚洲一区二区三区不卡国产欧美 | 色综合久久中文综合久久97| 欧美一区二区视频网站| 中文字幕亚洲成人| 久久99九九99精品| 欧美午夜一区二区三区免费大片| 欧美精品一区二区三区蜜桃 | 7777精品伊人久久久大香线蕉超级流畅| 2020国产精品自拍| 亚洲va欧美va国产va天堂影院| 成人激情视频网站| 日韩精品一区二区三区三区免费 | 亚洲国产aⅴ成人精品无吗| 国产一区二区三区免费| ...中文天堂在线一区| 蜜臀a∨国产成人精品| 91蝌蚪porny九色| 久久久不卡网国产精品二区| 麻豆精品在线观看| 欧美日韩一卡二卡| 亚洲欧美日韩小说| 成人av电影在线| 国产亚洲人成网站| 极品少妇xxxx偷拍精品少妇| 欧美高清dvd| 午夜久久久久久| 欧美日韩在线电影| 一区二区三区免费在线观看| 成人激情文学综合网| 国产性天天综合网| 国产乱人伦偷精品视频不卡 | 欧美日韩精品一区二区三区蜜桃| 国产精品美女www爽爽爽| 韩国中文字幕2020精品| www国产成人| 国产精品综合二区| 久久久精品一品道一区| 紧缚奴在线一区二区三区| 精品国产百合女同互慰| 国产一区二区免费在线| 久久精品人人做人人综合 |