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

📄 gpio.cpp

📁 ebd9307开发板wince bsp源码,包括cs8900,lcd,nand,serial,touch,usb,gpio,wd等驱动
💻 CPP
字号:
#include <hwdefs.h>
#include <windows.h>
#include <haluser.h>
#include "gpio.h"


//DWORD g_GPIOAinten;
//DWORD g_GPIOPaddr;

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{

    return TRUE;
}





DWORD GIO_Init (DWORD dwContext)
{
	DWORD dwRet = 1;
	HalWriteCommonReg( CSC_DEVCFG, DEVCFG_HONIDE | DEVCFG_GONIDE | DEVCFG_EONIDE , DEVCFG_HONIDE | DEVCFG_GONIDE | DEVCFG_EONIDE );
	RETAILMSG(1,(TEXT("INIT THE GPIO\r\n")));
	return dwRet;
}



BOOL GIO_Deinit (DWORD hDeviceContext)
{
	BOOL bRet = TRUE;
	
	return bRet;
}



DWORD GIO_Open (DWORD hDeviceContext,DWORD AccessCode, DWORD ShareMode)
{
	DWORD dwRet = 1;
	//RETAILMSG(1,(TEXT("OPEN THE GPIO\r\n")));
	return dwRet;
}


BOOL GIO_Close (DWORD hOpenContext)
{
	BOOL bRet = TRUE;
	//RETAILMSG(1,(TEXT("CLOSE THE GPIO\r\n")));
	return bRet;
}


 BOOL GIO_IOControl (DWORD hOpenContext,
					DWORD dwCode,
					PBYTE pBufIn,
					DWORD dwLenIn,
					PBYTE pBufOut,
					DWORD dwLenOut,
					PDWORD pdwActualOut)
{
	BOOL bRet = TRUE;
	DWORD dwPHDR,dwBufIn,dwPHDDR;
	
	dwPHDR = *GPIO_PHDR;
	dwPHDDR = *GPIO_PHDDR;


	switch(dwCode)
	{
		case IOCTL_GPIO_SET_INPUT:
			dwBufIn = (DWORD)(*pBufIn) & 0xff;
			dwBufIn &= 0xfc;
			*GPIO_PHDDR &= ~dwBufIn;
			//RETAILMSG(1,(TEXT("GPIO_SET_INPUT\r\n")));
			break;
		case IOCTL_GPIO_SET_OUTPUT:
			dwBufIn = (DWORD)(*pBufIn) & 0xff;
			*GPIO_PHDDR |= (dwBufIn | (dwPHDDR & 0x3));
			//RETAILMSG(1,(TEXT("GPIO_SET_OUTPUT\r\n")));
			break;
		case IOCTL_GPIO_SET_HIGH:
			dwBufIn = (DWORD)(*pBufIn) & 0xff;
			*GPIO_PHDR |= (dwBufIn | (dwPHDR & 0x3));
			//RETAILMSG(1,(TEXT("GPIO_SET_HIGH\r\n")));
			break;
		case IOCTL_GPIO_SET_LOWER:	
			dwBufIn = (DWORD)(*pBufIn) & 0xff;
			dwBufIn &= 0xfc;
			*GPIO_PHDR &= ~dwBufIn;
			//RETAILMSG(1,(TEXT("GPIO_SET_LOWER\r\n")));
			break;
		case IOCTL_GET_GPIO_VALUE:
			dwPHDR = *GPIO_PHDR;
			*pBufOut = (UCHAR)(dwPHDR);
			*pdwActualOut = 1;
            //RETAILMSG(1,(TEXT("GET_GPIO_VALUE\r\n")));
			break;                                                                    



		default:
			bRet = FALSE;
	}
	
	return bRet;
}



 void GIO_PowerDown (DWORD hDeviceContext)
{
	return;
}


 void GIO_PowerUp (DWORD hDeviceContext)
{
	return;
}


 DWORD GIO_Read (DWORD hOpenContext,LPVOID pBuffer,DWORD Count)
{
	DWORD dwRet = 0;
	
	return dwRet;
}


 DWORD GIO_Seek (DWORD hOpenContext,long Amount,DWORD Type)
{
    DWORD dwRet = 0;

    return dwRet;
}

DWORD GIO_Write (DWORD hOpenContext,LPCVOID pSourceBytes,DWORD NumberOfBytes)
{
	DWORD dwRet = 0;
	
	return dwRet;
}

⌨️ 快捷键说明

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