0

如何使用 C# 控制 USB 到并行端口?

USB转并行端口:IEEE-1284(36Pins)

IEEE-1284 引脚配置图:

http://i.stack.imgur.com/b75Z5.png

操作系统(操作系统):Windows 7 x64

编程语言:C#

我的代码:

private void button1_Click(object sender, EventArgs e)
{
     try
     {
          int address = System.Convert.ToInt16(textBox1.Text);
          int value = System.Convert.ToInt16(textBox2.Text);

          AccessPort.output(address, value);
      }
      catch(Exception ex)
      {
          MessageBox.Show("Error: " + ex.ToString());
      }
}

访问端口类:

static class AccessPort
{
    [DllImport("inpout32.dll", EntryPoint = "Out32")]
    public static extern void output(int address, int value);

    [DllImport("inpout32.dll", EntryPoint = "Inp32")]
    public static extern int input(int adress);
}

我将 LED(发光二极管)连接到 D0。当我将地址设置为 1 并将值设置为 1 并单击按钮时,它不会给出错误但 LED 不会亮起,因为 inpout32.dll 是真正并行端口的库,但我有 USB 到并行端口,或者我的地址和值对于 USB 到并行不正确港口。

如何使用 C# 编程语言通过 USB 到并行端口(LPT)点亮 LED?

4

1 回答 1

0

问题是端口地址不是 1。要检查端口地址,请转到设备管理器,展开端口(COM 和 LPT),双击您想要的 lpt 端口(并行端口),然后转到选项卡资源并得到这个值(见下面的链接)

http://i.imgur.com/kcEMCGY.png

然后,您必须更改将地址转换为 int 的方式,因为端口地址将为十六进制: int address = System.Convert.ToInt16(textBox1.Text, 16);

然后在地址文本框中输入该值(在我的例子中是 0378)。

于 2013-08-05T17:40:46.640 回答