資源簡介
可以在windows ce運行的GPIO驅動程序
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include??
static?volatile?BULVERDE_GPIO_REG??*g_pGPIORegs??=?NULL; ?//?PXA27x?GPIO?registers
BOOL?WINAPI
GPI_DllEntry(
????????HANDLE??hInstDll
????????DWORD???dwReason
????????LPVOID??lpvReserved
????????)
{
return?1;
}
DWORD?GPI_Init(LPCTSTR?pContextLPCVOID?lpvBusContext)
{
PHYSICAL_ADDRESS?RegPA;
if(g_pGPIORegs?==?NULL)
{
RegPA.QuadPart?=?BULVERDE_base_REG_PA_GPIO;
g_pGPIORegs?=?(volatile?BULVERDE_GPIO_REG?*)?MmMapIoSpace(RegPA?0x400?FALSE);
}
return?1;
}
DWORD?GPI_Open?(DWORD?dwData?DWORD?dwAccess?DWORD?dwShareMode)?{
??
????return?(1);
???}
BOOL??GPI_Close(DWORD?dwData)?{return?(TRUE);}
DWORD?GPI_Write(DWORD?dwData?LPCVOID?pBuf?DWORD?Len)
{
?BYTE*?pdatabuf;
?BYTE??gpioNum;
?BYTE??gpioState;
?pdatabuf?=?(BYTE*)pBuf;
?gpioNum?=?*pdatabuf++;
?gpioState?=?*pdatabuf;
?RETAILMSG(1(TEXT(“gpioNum??:??%d\r\n“)gpioNum));
?RETAILMSG(1(TEXT(“gpioState??:?%d\r\n“)gpioState));
?if(gpioNum?==?3?||?gpioNum?==?4?||?gpioNum?==?9)????//這里可以選擇你要用的gpio口?GPIO0-31由寄存器GPDR0?GPSR0?GPCR0控制?????????
?{ ?//GPIO32-63?由GPDR1...控制?GPIO64-95由GPDR2...控制
? if(gpioState?==?1) ?//GPIO96-???由GPDR3...控制?
? {
? g_pGPIORegs->GPDR0?|=?(1< ? g_pGPIORegs->GPSR0?|=?(1< ? }
? else
? {
? g_pGPIORegs->GPDR0?|=?(1< ? g_pGPIORegs->GPCR0?|=?(1< ? } ?
?}
?????else?if(gpioNum?==?101?||?gpioNum?==102?||?gpioNum?==?103?||?gpioNum?==?104)
?{
? if(gpioState?==?1)
? {
? g_pGPIORegs->GPDR3?|=?(1<<(gpioNum?%?32));
? g_pGPIORegs->GPSR3?|=?(1<<(gpioNum?%?32));
? }
? else
? {
? g_pGPIORegs->GPDR3?|=?(1<<(gpioNum?%?32));
? g_pGPIORegs->GPCR3?|=?(1<<(gpioNum?%?32));
? }
?} ?
? return?1;
}
DWORD?GPI_Read(DWORD?dwData??LPVOID?pBuf?DWORD?Len)
{
BYTE*?pdatabuf;
BYTE??gpioNum;
pdatabuf?=?(BYTE*)pBuf;
gpioNum?=?*pdatabuf++;
if(gpioNum?==?3?||?gpioNum?==4?||?gpioNum?==?9)
?{
*pdatabuf?=(g_pGPIORegs->GPLR0?&?(1< ?
?}
if(gpioNum?==?101?||?gpioNum?==102?||?gpioNum?==?103?||?gpioNum?==?104)
?{
*pdatabuf?=(g_pGPIORegs->GPLR3?&?(1<<(gpioNum?%?32)))?1:0;
? }
RETAILMSG(1(TEXT(“state:????%d\r\n“)*pdatabuf));
?????????return?1;
}
BOOL??GPI_Deinit(DWORD?dwData)
{
if(g_pGPIORegs)
g_pGPIORegs?=?NULL;
return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10407??2007-05-17?16:11??GPIO-driven?and?routine\Build.log
?????文件????????600??2007-05-17?09:59??GPIO-driven?and?routine\GPI.def
?????文件????????659??2001-12-19?17:14??GPIO-driven?and?routine\makefile
?????文件????????796??2007-05-17?10:16??GPIO-driven?and?routine\sources
?????文件????????123??2007-05-31?14:24??GPIO-driven?and?routine\需添加的注冊表.txt
?????文件???????2446??2007-05-17?16:11??GPIO-driven?and?routine\GPI.c.bak
?????文件???????2645??2007-05-31?14:25??GPIO-driven?and?routine\GPI.c
?????文件????????684??2007-05-17?16:11??GPIO-driven?and?routine\obj\ARMV4I\retail\gpi.def
?????文件???????9025??2007-05-17?16:11??GPIO-driven?and?routine\obj\ARMV4I\retail\GPI.obj
?????文件?????????63??2007-05-18?23:36??GPIO-driven?and?routine\obj\ARMV4I\retail\_ob
?????目錄??????????0??2008-02-17?16:48??GPIO-driven?and?routine\obj\ARMV4I\retail
?????目錄??????????0??2008-02-17?16:48??GPIO-driven?and?routine\obj\ARMV4I
?????目錄??????????0??2008-02-17?16:48??GPIO-driven?and?routine\obj
?????文件???????9216??2007-05-31?14:25??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi.exe
?????文件???????1051??2007-05-31?14:25??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.vcc
?????文件???????3335??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\ReadMe.txt
?????文件???????1302??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.h
?????文件???????1790??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.cpp
?????文件???????1085??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\StdAfx.h
?????文件????????201??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\StdAfx.cpp
?????文件????????768??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\newres.h
?????文件??????12437??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.vcp
?????文件????????536??2007-05-31?13:56??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.vcw
?????文件??????41984??2007-05-31?14:25??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.vcb
?????文件???????1231??2007-05-31?13:57??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpiDlg.h
?????文件???????2278??2007-05-31?14:25??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.vcl
?????文件???????5287??2007-05-31?14:21??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.rc
?????文件????????638??2007-05-31?14:21??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\Resource.h
?????文件??????92620??2007-05-31?14:21??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpi.aps
?????文件???????2437??2007-05-31?14:23??GPIO-driven?and?routine\一個可用的例程源碼和文件\gpi\gpiDlg.cpp
............此處省略23個文件信息
- 上一篇:108種編程中常見的問題及解決辦法
- 下一篇:virtuoso實例教學
評論
共有 條評論