⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_base2.cpp

📁 将XLS文件的内容下载到LED显示屏上显示
💻 CPP
字号:
/*
===========================================================================
    File Name : USB_Base.cpp
    Function : All USB Basic Function


                           UPDATE NOTE
----------+---------------------------------------------------+------------
 DATE     |           Bug or Description for this Version     | VERSION
----------+---------------------------------------------------+------------
2004/9/21   First Release                                        V0.001


2004/9/21
Modified by Frank Chiang
============================================================================
*/




DWORD instance=0x00;

//=======USB Basic Function======================================================================
/*
------------------------------------------------------------------------------
         bool	Search_USB_Port (void)

Function :  Search usb port
Input :
Output :
	return 0 , device offline
	return 1 , device online
Note :

------------------------------------------------------------------------------
*/

bool	Search_USB_Port (void)
{

	if(hWNDLL == NULL)
	{
		hWNDLL = ::LoadLibrary("9kdUSBDLL.DLL");

		if (hWNDLL)
		{
			_OpenDevice = (int (WINAPI *) (DWORD))
                         GetProcAddress(hWNDLL, (LPSTR)"OpenDevice");
			_CloseDevice = (int (WINAPI *) (DWORD))
				           GetProcAddress(hWNDLL, (LPSTR)"CloseDevice");
			_Write320Command = (int (WINAPI *) (DWORD, UCHAR*, int))
				           GetProcAddress(hWNDLL, (LPSTR)"Write320Command");
			_USB_WriteOut = (BOOL (WINAPI *) (DWORD, UCHAR*, ULONG))
				            GetProcAddress(hWNDLL, (LPSTR)"USB_WriteOut");
			_USB_ReadIn   = (int (WINAPI *) (DWORD, UCHAR*, ULONG))
				            GetProcAddress(hWNDLL, (LPSTR)"USB_ReadIn");

		}
		else
		{
			AfxMessageBox("Can't find 9kdUSBDLL.DLL ,please check again !!!",MB_OK,0);
			return 0;
		}
	}

	if(_OpenDevice(instance) != 1)
	{
//	 		AfxMessageBox("Please Connect USB DEVICE !!!",MB_OK,0);
			_CloseDevice(instance);
			::FreeLibrary(hWNDLL);
            hWNDLL = NULL;
			return 0;
	}
	_CloseDevice(instance);

	return	1;

}

bool Close_USB()
{
	if(hWNDLL != NULL)
	{
		::FreeLibrary(hWNDLL);
		hWNDLL = NULL;
	}
	return	1;
}

/*
------------------------------------------------------------------------------
         DWORD USBICE_Write(UCHAR * pBuffer, int dwSize)

Function :  Basic USB write function
Input :
	UCHAR * pBuffer , Data Buffer Point
	int dwSize , Data Buffer Size & MAX Buffer Size is [ 64Byte ]
Output :
	return 0 , Write command error
	return 1 , Write command susceed
Note :

------------------------------------------------------------------------------
*/
DWORD USBICE_Write(UCHAR * pBuffer, int dwSize)
{

	int Status;

	Status = _USB_WriteOut(instance, pBuffer, dwSize);

    if (!Status)
	{
		AfxMessageBox ("Bulk Write error on usb transfer !!!",MB_OK,0);
	}

	return Status;

}

DWORD USBICE_WriteCmd(UCHAR * pBuffer, int dwSize)
{

	int Status = 1;

	Status = _Write320Command(instance, pBuffer, dwSize);
/*
    if (!Status)
	{
		AfxMessageBox ("Write command error on usb transfer !!!",MB_OK,0);
	}
*/
	return Status;

}

/*
------------------------------------------------------------------------------
         DWORD USBICE_Read(UCHAR * pBuffer, int dwSize)

Function :  Basic USB read function
Input :
	UCHAR * pBuffer , Data Buffer Point
	int dwSize , Data Buffer Size & MAX Buffer Size is [ 16Byte ]
Output :
	return 0 , Read command error
	return 1 , Read command susceed
Note :

------------------------------------------------------------------------------
*/
DWORD USBICE_Read(UCHAR * pBuffer, unsigned long dwSize)
{

	int Status;

	Status = _USB_ReadIn(instance, pBuffer, dwSize);

    if (!Status)
	{
		AfxMessageBox ("Bulk Read error on usb transfer !!!",MB_OK,0);
	}

	return Status;

}

/*
------------------------------------------------------------------------------
         bool Write1L_Cmd (BYTE Command, UINT Data)

Function :  Write 1 byte command
Input :
	BYTE Command ,
	BYTE Data

Output :
	return 0 , Write command error
	return 1 , Write command susceed
Note :

------------------------------------------------------------------------------
*/
bool Write1L_Cmd (BYTE Command, BYTE Data)
{
	BYTE *	pBuffer;
	BYTE	Data_Buf[64];
	int		Status;

	Data_Buf[0]=Command;
	Data_Buf[1]=Data & 0xFF;

	pBuffer	=	&Data_Buf[0x00];

	Status = USBICE_WriteCmd(pBuffer, 64);
	if (Status)
		return 1;
	else
		return 0;


}

/*
------------------------------------------------------------------------------
         bool Write2L_Cmd (BYTE Command, UINT Data)

Function :  Write 2 byte command
Input :
	BYTE Command ,
	BYTE Data

Output :
	return 0 , Write command error
	return 1 , Write command susceed
Note :

------------------------------------------------------------------------------
*/
bool Write2L_Cmd (BYTE Command, BYTE Data)
{
	BYTE *	pBuffer;
	BYTE	Data_Buf[64];
	int		Status;

	Data_Buf[0]=Command;
	Data_Buf[1]=Data & 0xFF;
	Data_Buf[2]=( Data >> 8 ) & 0xFF;

	pBuffer	=	&Data_Buf[0x00];

	Status = USBICE_WriteCmd(pBuffer, 64);
	if (Status)
		return 1;
	else
		return 0;


}

/*
------------------------------------------------------------------------------
         bool Write4L_Cmd (BYTE Command, UINT Data)

Function :  Write 4 byte command
Input :
	BYTE Command ,
	BYTE Data

Output :
	return 0 , Write command error
	return 1 , Write command susceed
Note :

------------------------------------------------------------------------------
*/
bool Write4L_Cmd (BYTE Command, UINT Data)
{

	BYTE *	pBuffer;
	BYTE	Data_Buf[64];
	int		Status;

	Data_Buf[0]=Command;
	Data_Buf[1]=( Data >> 16 ) & 0xFF;
	Data_Buf[2]=( Data >> 24 ) & 0xFF;
	Data_Buf[3]=Data & 0xFF;
	Data_Buf[4]=( Data >> 8 ) & 0xFF;

	pBuffer	=	&Data_Buf[0x00];

	Status = USBICE_WriteCmd(pBuffer, 64);
	if (Status)
		return 1;
	else
		return 0;

}

⌨️ 快捷键说明

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