如何用C#控制GPIO???
操作系统是64位Win7
我要用C#来控制GPIO,请问该如何操作?
具体的需求是这样的,用C#做的一个截取屏幕的程序,读取指定区域图像的RGB信息,然后传给GPIO口
分别有8个GPI口和8个GPO口,我只需要用到GPO口就可以
SingleName PinNo. GPIO register DATA
*****************************************************
GOP_23 | 79 | LD6_CRD1[3] |0:low 1:high
GOP_22 | 78 | LD6_CRD1[2] |0:low 1:high
GOP_21 | 77 | LD6_CRD1[1] |0:low 1:high
GOP_20 | 76 | LD6_CRD1[0] |0:low 1:high
GOP_27 | 83 | LD6_CRD1[7] |0:low 1:high
GOP_26 | 82 | LD6_CRD1[6] |0:low 1:high
GOP_25 | 81 | LD6_CRD1[5] |0:low 1:high
GOP_24 | 80 | LD6_CRD1[4] |0:low 1:high
这两天一直忙活这个,但还是一点儿头绪也没有,在C#版里发帖也没人回,希望有知道的好心人麻烦给指点一下。
下面是从网上找的一段代码,不知道有什么问题。
还有今天主板的公司发来邮件说“编写M840主板GPIO 需要用Winddk(Vc6+winddk VS2005)来编写.SYS和Dll的库
AP随便用哪个版本写,VC, .NET都可以写”
还想请教一下这个.sys和dll该如何写。
问的问题有点儿多,还望不吝赐教!!!
我再多加点儿分!!!
我要用C#来控制GPIO,请问该如何操作?
具体的需求是这样的,用C#做的一个截取屏幕的程序,读取指定区域图像的RGB信息,然后传给GPIO口
分别有8个GPI口和8个GPO口,我只需要用到GPO口就可以
SingleName PinNo. GPIO register DATA
*****************************************************
GOP_23 | 79 | LD6_CRD1[3] |0:low 1:high
GOP_22 | 78 | LD6_CRD1[2] |0:low 1:high
GOP_21 | 77 | LD6_CRD1[1] |0:low 1:high
GOP_20 | 76 | LD6_CRD1[0] |0:low 1:high
GOP_27 | 83 | LD6_CRD1[7] |0:low 1:high
GOP_26 | 82 | LD6_CRD1[6] |0:low 1:high
GOP_25 | 81 | LD6_CRD1[5] |0:low 1:high
GOP_24 | 80 | LD6_CRD1[4] |0:low 1:high
这两天一直忙活这个,但还是一点儿头绪也没有,在C#版里发帖也没人回,希望有知道的好心人麻烦给指点一下。
下面是从网上找的一段代码,不知道有什么问题。
[DllImport("kernel32.dll", EntryPoint = "DeviceIoControl", SetLastError = true)]
internal static extern int DeviceIoControl(
IntPtr hDevice,
int dwIoControlCode,
byte[] lpInBuffer,
int nInBufferSize,
byte[] lpOutBuffer,
int nOutBufferSize,
ref int lpBytesReturned,
IntPtr lpOverlapped);
[DllImport("kernel32.dll")]
private static extern IntPtr CreateFile(
string lpFileName,
// 要打开的串口名称
uint dwDesiredAccess,
// 指定串口的访问方式,一般设置为可读可写方式
int dwShareMode,
// 指定串口的共享模式,串口不能共享,所以设置为0
int lpSecurityAttributes,
// 设置串口的安全属性,WIN9X下不支持,应设为NULL
int dwCreationDisposition,
// 对于串口通信,创建方式只能为OPEN_EXISTING
int dwFlagsAndAttributes,
// 指定串口属性与标志,设置为FILE_FLAG_OVERLAPPED( 重叠I/O操作 ),指定串口以异步方式通信
int hTemplateFile
// 对于串口通信必须设置为NULL
);
private const uint GENERIC_READ = 0x80000000;
private const uint GENERIC_WRITE = 0x40000000;
private const int OPEN_EXISTING = 3;
public Form1()
{
InitializeComponent();
}
private void GPIO测试_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
IntPtr gpiodriver = CreateFile("GIO20:", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
、、就是这一句出错
if (gpiodriver == (IntPtr)(-1))
{
MessageBox.Show("打开GPIO设备失败!");
}
else
{
int bytesReturned = 0;
DeviceIoControl(gpiodriver, 0x01, null, 0, null, 0, ref bytesReturned, IntPtr.Zero);
}
}
还有今天主板的公司发来邮件说“编写M840主板GPIO 需要用Winddk(Vc6+winddk VS2005)来编写.SYS和Dll的库
AP随便用哪个版本写,VC, .NET都可以写”
还想请教一下这个.sys和dll该如何写。
问的问题有点儿多,还望不吝赐教!!!
我再多加点儿分!!!
...全文
相关推荐
C#控制GPIO
C#控制GPIO
C#在Windows中通过GPIO控制USB设备寄存器数据
通用输入输出端口(GPIO)是微控制器或微处理器上的一种通用I/O接口,它能够作为输入或输出使用,为开发者提供了灵活性去控制电子设备上的各种信号。作为输入,GPIO端口能够接收来自外部设备的信号;作为输出,GPIO端口能向外部设备发送信号或执行控制功能。
主板GPIO控制软件
本文描述了如何操作工业计算机主板GPIO端口的编程实例
GPIO.rar_ CSharp GPIO_C# GPIO_GPIO_csharp gpio
用C# 描述的如何读取对应GPIO中的数据,对于PPC 开发式很有用的
C#上位机控制8路继电器
可以通过上位机控制8路继电器,直接提供的源码,稍加改动,可以进行自己的项目


驱动开发/核心开发
