下面针对流式程序:
流式程序主要是对IO口进行控制的。下面主要是对LED的控制。
在驱动程序里面有个xxx_iocontrol()函数(xxx为驱动的名字),这个函数主要是对IO口的控制,
你要对IO口实现怎样的控制都可以在这里编写。比如:
BOOL LED_IOControl(DWORD hOpenContext, //XXX_Open返回给上层的那个句柄
DWORD dwCode, //IO操作码
PBYTE pBufIn, //传入的Buffer,每个IO操作码都会定义自已的Buffer结构
DWORD dwLenIn, //以字节记的大小
PBYTE pBufOut, //分别为传出的Buffer,及其以字节记的大小
DWORD dwLenOut,
PDWORD pdwActualOut)
{
switch(dwCode)
{
case IO_CTL_GPIO_1_ON:
v_pIOPregs->GPFDAT=v_pIOPregs->GPFDAT&~(0x1<<4);
break;
case IO_CTL_GPIO_2_ON:
v_pIOPregs->GPFDAT=v_pIOPregs->GPFDAT&~(0x1<<5);
break;
case IO_CTL_GPIO_3_ON:
v_pIOPregs->GPFDAT=v_pIOPregs->GPFDAT&~(0x1<<6);
break;
case IO_CTL_GPIO_4_ON:
v_pIOPregs->GPFDAT=v_pIOPregs->GPFDAT&
应用程序如何调用驱动程序
最新推荐文章于 2024-05-10 21:49:53 发布
这篇博客详细介绍了如何在应用程序中通过DeviceIoControl()函数调用驱动程序的LED_IOControl()函数来控制GPIO口,实现LED的开关操作。在驱动程序中,通过IOCTL代码实现对GPIO的具体控制,而在应用程序中,使用CreateFile()打开驱动,DeviceIoControl()发送控制命令,最后用CloseHandle()关闭驱动。
摘要由CSDN通过智能技术生成