使用C#控制USB到并行端口
本文关键字:并行端口 USB 控制 使用 | 更新日期: 2023-09-27 18:26:26
如何使用C#控制USB到并行端口?
USB到并行端口:IEEE-1284(36Pins)
IEEE-1284引脚配置图像:
https://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?
问题在于端口地址不是1。要检查端口地址,请转到设备管理器,展开端口(COM&LPT),双击所需的LPT端口(并行端口),然后转到选项卡资源并获取此值(请参阅下面的链接)
https://i.stack.imgur.com/wiTV3.png
然后,您必须更改将地址转换为int的方式,因为端口地址将是十六进制的:int address=System.Convert.ToInt16(textBox1.Text,16);
然后在地址文本框中输入该值(在我的情况下为0378)。