udisk_app.c

来自「smp860运动控制器USB驱动,对从事数控技术开发人员非常有用」· C语言 代码 · 共 75 行

C
75
字号
/****************************************************************************
*****************************************************************************/

#include "usb.h"
#include "config.h"

extern void memset(void *s, const char ch, int n) ;
extern void memcpy(void *s1, const void *s2, int n) ;
extern int strlen(const char *s) ;
extern char SerialRxKey( void ) ;

/*USB*/
EP_CONTROL          g_epctl;
DEVICE_REQUEST      g_usbrequest;

ARMUSBFLAGS         bUSBFlags;
CONTROL_XFER        ControlData;
U8                Ep1Buf[EP1_PACKET_SIZE];
U8                Ep2Buf[EP2_PACKET_SIZE];
volatile  U8   Ep1Len;
volatile  U8   Ep2Len;
volatile  U16   intcount;
volatile  U16   isr;
volatile  U8   irqcount;

U8   g_UsbConFlags[10];

int Udisk_To_PC(void)
{
	printf("Udisk connect to PC\n");

	g_NFBufAddr = 0xffffffff;       //初始化全局变量
    memset(g_NFBuf,0,16384);
    memset(CacheBuf1,0,NFPAGESIZE * 2);
    memset(CacheBuf2,0,NFPAGESIZE * 2);
	
    TsFsInit(0);     //检测文件系统,决定是否格式化磁盘
   
    if( CheckUsbLink() )
    {
        g_NFBufAddr = 0xffffffff;       //初始化全局变量
        memset(g_NFBuf,0,16384);
        memset(CacheBuf1,0,NFPAGESIZE * 2);
        memset(CacheBuf2,0,NFPAGESIZE * 2);
    
        memset(g_UsbConFlags,0,10);
        intcount =0;    
        
    	USBInit();
        printf("USB ID = 0x%4x\n",D12_ReadChipID());
    	Delay(0);
        
        printf( "Press ESC key to exit!\n" ) ;

    	while( (SerialRxKey()!=ESC_KEY) && (g_UsbConFlags[7] != 'x') ) 
    	{
            if(!(rPDATG&0x01))
    	       Usb_irq();
    	    
    		if(g_epctl.request)
                UsbOnCmd();
            if ( 0xff != g_epctl.CbwCmd )
                UsbmsService();
        }
        
        Usb_Stop();
        printf("Exit USBDISK Program!\n") ;
        return 1 ;
    }
	
	printf("Error! USB is not connected!\n") ;
	return 0 ;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?