刚才论坛有位兄台应用和驱动通信不成功,我帮他解决了问题,现在写入博客,造福you and me
==========================================================================
各位大侠:
小弟在WinCE系统中添加了自己写的LED灯的驱动程序,并写了一个MFC程序测试之。却发现存在一些问题。CreateFile成功,但是灯却没有亮,下面的部分代码,大哥大姐们帮忙了。
static AT91PS_PIO g_pPIOB;
static AT91PS_PMC g_pPMC;
BOOL Addr_Init()
{
BOOL bRet = TRUE;
PHYSICAL_ADDRESS PhysAddrPiob;
PHYSICAL_ADDRESS PhysAddrPmc;
PhysAddrPiob.LowPart = (DWORD) AT91C_BASE_PIOB;
PhysAddrPiob.HighPart = 0;
g_pPIOB = (AT91PS_PIO) MmMapIoSpace(PhysAddrPiob,sizeof(AT91S_PIO),FALSE);
if (g_pPIOB == NULL)
{
RETAILMSG(1,(L"Failed to remap the PIO registrers/r/n"));
bRet = FALSE;
}
PhysAddrPmc.LowPart = (DWORD) AT91C_BASE_PMC;
PhysAddrPmc.HighPart = 0;
g_pPMC = (AT91PS_PMC) MmMapIoSpace(PhysAddrPmc,sizeof(AT91S_PMC),FALSE);
if (g_pPMC == NULL)
{
RETAILMSG(1,(L" Failed to remap the PMC registrers/r/n"));
bRet = FALSE;
}
return bRet;
}
BOOL WINAPI DllEntry(HANDLE hInstDll,DWORD dwReason,LPVOID lpvReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls((HMODULE)hInstDll);
break;
case DLL_PROCESS_DETACH:
break;
}
return 1;
}
DWORD LES_Init(DWORD dwContext)
{
Addr_Init();
g_pPMC->PMC_PCER = 1 < <3;
return 1;
}
DWORD LES_Open(DWORD hDeviceContext,DWORD AccessCode,DWORD ShareMode)
{
g_pPIOB->PIO_PER = (1 < <11) |(1 < <16) |(1 < <17) |(1 < <18);
g_pPIOB->PIO_OER = (1 < <11) |(1 < <16) |(1 < <17) |(1 < <18);
g_pPIOB->PIO_CODR = (1 < <11) |(1 < <16) |(1 < <17) |(1 < <18);
return 1;
}
应用程序中打开驱动的函数如下:
void CLedsDlg::OnOpen()
{
// TODO: Add your control notification handler code here
hFile = CreateFile(TEXT("LES:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if(hFile == NULL)
{
MessageBox(_T("不能打开LES"));
}
else
{
MessageBox(_T("打开LES成功"));
}
}
我设置LED灯的驱动程序在生成系统镜像的时候就进行了编译,且编译进内核,因此只需打开驱动就可以使用了吧、
现在用到的程序代码主要就这些了。各位大哥帮忙看看是什么地方出问题了。
谢,急等
===================================================================================
哈哈,我也是碰巧。一起学习。
————————————————————————————————————
不用......
转载请标明:作者wogoyixikexie@gliet.桂林电子科技大学一系科协,原文地址:http://blog.csdn.net/gooogleman——如有错误,希望能够留言指出;如果你有更加好的方法,也请在博客后面留言,我会感激你的批评和分享。