亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成人啪免费观看软件| 五月综合激情婷婷六月色窝| 欧美成人a视频| 91精品欧美综合在线观看最新| 色综合色狠狠综合色| 在线精品国精品国产尤物884a| 91美女在线看| 91精品综合久久久久久| 91麻豆精品国产综合久久久久久| 欧美午夜一区二区| 这里是久久伊人| 久久久精品黄色| 亚洲精品一二三| 奇米一区二区三区| 高潮精品一区videoshd| 91免费视频网址| 欧美大片在线观看一区| 中文在线资源观看网站视频免费不卡 | 水蜜桃久久夜色精品一区的特点 | 国产传媒日韩欧美成人| 91麻豆产精品久久久久久| 欧美美女喷水视频| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕字幕中文在线中不卡视频| 亚洲国产综合91精品麻豆| 精品无人区卡一卡二卡三乱码免费卡| 国产99精品国产| 日韩欧美一区在线| 日韩精彩视频在线观看| 成人一区二区三区在线观看 | 亚洲精品成人在线| 成人精品视频网站| 久久精品无码一区二区三区| 婷婷久久综合九色综合伊人色| 国产成人精品亚洲777人妖| 日韩一级片网站| 日本va欧美va精品| 欧美日韩国产综合一区二区三区| 国产农村妇女精品| 国产精品夜夜嗨| 欧美成人综合网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线这里只有精品| 国产精品女主播av| 国产99久久久精品| 国产精品美女久久久久久久| 粉嫩蜜臀av国产精品网站| 国产视频一区在线播放| 国产91丝袜在线播放0| 国产欧美日产一区| 91美女片黄在线观看91美女| 亚洲色图视频网| 色综合天天视频在线观看| 亚洲欧美日韩久久| 欧美高清视频www夜色资源网| 日韩在线卡一卡二| 久久久久久久久久电影| 99视频一区二区| 青娱乐精品视频| 国产精品久久久久影视| 欧美亚洲综合网| 蜜桃视频免费观看一区| 国产日韩欧美麻豆| 在线免费视频一区二区| 国内精品写真在线观看| 亚洲色图一区二区| 精品久久久久久最新网址| 99视频有精品| 韩国精品在线观看| 亚洲香肠在线观看| 亚洲欧美在线aaa| 欧美v亚洲v综合ⅴ国产v| 欧美主播一区二区三区美女| 麻豆专区一区二区三区四区五区| 国产午夜精品久久久久久免费视| 欧美色综合久久| 一本高清dvd不卡在线观看| 免费av网站大全久久| 亚洲午夜电影在线| 久久久99久久精品欧美| 这里只有精品99re| 色香蕉久久蜜桃| 日本福利一区二区| 国产成人精品三级麻豆| 国产乱码精品一区二区三| 看片网站欧美日韩| 美脚の诱脚舐め脚责91 | 色先锋久久av资源部| 99精品黄色片免费大全| 成人高清视频在线| 99久久婷婷国产综合精品电影| 国产一区二三区好的| 国产精品一区二区无线| 粉嫩欧美一区二区三区高清影视| 国产一区二区三区在线观看免费视频 | 国产一区二区三区在线观看免费| 久久草av在线| av爱爱亚洲一区| 欧美肥妇毛茸茸| 91麻豆精品国产综合久久久久久| 一区二区三区精品在线| 欧美电影一区二区三区| 久久97超碰国产精品超碰| 免费欧美在线视频| 国产精品影视在线| 在线视频国内一区二区| 欧美一区二区大片| 国产精品成人一区二区艾草| 亚洲综合清纯丝袜自拍| 国产精品资源站在线| 色网站国产精品| 精品日韩欧美一区二区| 亚洲男人电影天堂| 久久国产精品露脸对白| 色综合久久久久久久久| 欧美成人bangbros| 日日摸夜夜添夜夜添精品视频| 国模一区二区三区白浆| 在线观看不卡视频| 国产精品国模大尺度视频| 精品亚洲国内自在自线福利| 日本电影亚洲天堂一区| 国产精品毛片久久久久久| 亚洲一区二区黄色| 91浏览器入口在线观看| 久久精品夜夜夜夜久久| 久久电影网站中文字幕| 欧美在线你懂得| 香蕉加勒比综合久久| 91视视频在线观看入口直接观看www | 国产精品久久久久婷婷二区次| 国模无码大尺度一区二区三区| 在线综合视频播放| 香蕉成人伊视频在线观看| 欧美剧情片在线观看| 亚洲国产成人91porn| 欧美日韩精品欧美日韩精品一综合| 中文字幕av一区 二区| 99热在这里有精品免费| 亚洲美女视频在线观看| 欧美在线制服丝袜| 婷婷成人综合网| 日韩精品专区在线影院重磅| 国产自产视频一区二区三区| 国产三级一区二区三区| 91在线看国产| 日本三级亚洲精品| 国产亚洲短视频| 色哟哟国产精品| 久久99精品国产麻豆婷婷洗澡| 日韩欧美国产综合在线一区二区三区| 免费成人av在线播放| 中文字幕中文字幕在线一区| 色哟哟一区二区在线观看| 免费观看一级欧美片| 国产精品美女久久久久aⅴ | 亚洲一级片在线观看| 精品久久五月天| 在线一区二区三区做爰视频网站| 轻轻草成人在线| 自拍视频在线观看一区二区| 91精品国产色综合久久ai换脸 | 中文字幕制服丝袜一区二区三区 | 国产在线不卡一区| 亚洲精品视频在线| 国产色综合一区| 欧美成人免费网站| 欧美激情在线免费观看| 欧美日韩精品高清| 国产精品一区二区在线观看不卡| 国产精品国产三级国产普通话三级| 欧美亚洲高清一区| 在线亚洲免费视频| 99久久精品久久久久久清纯| 国产一区二区三区日韩| 免费日本视频一区| 精品中文字幕一区二区小辣椒| 污片在线观看一区二区| 亚洲成av人片www| 婷婷综合五月天| 秋霞午夜鲁丝一区二区老狼| 日本va欧美va瓶| 老司机免费视频一区二区| 午夜影视日本亚洲欧洲精品| 亚洲成人www| 免费成人av在线| 成人丝袜高跟foot| 91麻豆免费看片| 日韩一区二区三区电影 | 韩国精品在线观看| 国内国产精品久久| 91一区二区在线观看| 欧美图区在线视频| 久久影视一区二区| 亚洲摸摸操操av| 青娱乐精品视频| 成人av动漫在线| 911精品国产一区二区在线| 精品国产3级a| 亚洲精品视频观看|