在应用程序和驱动通信中应该注意的问题
来源:互联网 发布:招聘淘宝美工的要求 编辑:程序博客网 时间:2024/05/17 01:26
刚才论坛有位兄台应用和驱动通信不成功,我帮他解决了问题,现在写入博客,造福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——如有错误,希望能够留言指出;如果你有更加好的方法,也请在博客后面留言,我会感激你的批评和分享。
- 在应用程序和驱动通信中应该注意的问题
- 在应用程序和驱动通信中应该注意的问题
- 驱动开发中应该注意的事项
- 驱动开发中应该注意的事项
- 一些在Hibernate学习中应该注意的问题
- 在C#中应该注意的舍取问题
- 在Symbian中编写DLL应该注意的问题
- 一些在Hibernate学习中应该注意的问题
- MmMapIoSpace函数在EVC中应该注意的问题
- 在VC中使用资源文件应该注意的问题
- 在phpMyAdmin中创建存储过程应该注意的问题
- 在DataTable中查询应该注意的问题 (DataTable.select)
- Struts2 - 属性驱动与模型驱动 中应该注意的问题。
- position absolute 和 relative 在导航中应该注意的
- android 6.0和7.0开发中应该注意的问题
- 在Myeclipse中开发web项目时,servlet的创建和使用中应该注意的问题。
- JAVA编程中应该注意的问题
- EJB分布式中应该注意的问题
- AJAX跨域
- 中国报表-报表工具-智业智能-2009年一季度报表工具动向(三)
- VirtualAlloc失败
- 2009 年报表动向(四)
- 清华校长送给毕业生的5句笺言
- 在应用程序和驱动通信中应该注意的问题
- 市场主流报表工具大观
- malloc 最大可以分配多大内存
- Web报表软件Java与Active X体系结构之比较
- 當一個Datetime插入到Samlldatetime型字段時,SQL Server對時間的處理
- Button..::.CommandName 属性
- JOIN用法简述
- 使用目录创建VC2003/VC2005工程
- c# aspx 导出Excel文件的方法