2013-08-05 2 views
2

C#을 사용하여 USB를 병렬 포트로 제어하는 ​​방법은 무엇입니까?C#을 사용하여 USB를 병렬 포트로 제어

USB 포트를 병렬 : IEEE-1284 (36Pins)

IEEE-1284 핀 구성의 이미지 :

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

OS (운영체제) : 윈도우 7 64

프로그래밍 언어를 : C#

내 코드 :

(210)
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()); 
     } 
} 

AccessPort 클래스 :

내가 LED했다
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); 
} 

(발광 다이오드) D0에 연결. 1로 설정하고 값을 1로 설정하고 클릭 버튼을 누르면 오류가 발생하지만 LED는 켜지지 않습니다. inpout32.dll은 실제 병렬 포트 용 라이브러리이지만 병렬 포트에 대한 USB가 있거나 내 주소와 값이 USB에 대해 올바르지 않습니다. 포트.

C# 프로그래밍 언어를 사용하여 USB에서 병렬 포트 (LPT)로 LED를 켜는 방법은 무엇입니까?

+0

Visual Studio를 관리자로 실행하는 코드를 시도한 적이 있습니까? 보안 문제가 있는지 확인하기 만하면됩니다. – Frode

+0

예, 시도했지만 오류가 발생하지 않습니다. 문제는 라이브러리에 내가 사용하는 병렬 포트에 USB를 사용하고있어 inpout.dll이 실제 병렬 포트에서만 작동하거나 문제가 주소에 있다고 생각합니다 : USB가 있습니다 다른 주소 – Gigi10012

답변

0

포트 주소가 1이 아님을 확인하십시오. 포트 주소를 확인하려면 장치 관리자로 가서 포트 (COM & LPT)를 확장하고 원하는 lpt 포트 (병렬 포트)를 두 번 클릭하십시오. = INT 주소 : 탭 자원이 값을 얻을 당신이 INT에 주소를 변환하는 방법 포트 주소를 16 진수로되기 때문에

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

, 당신은, 변경해야합니다 (아래 링크 참조) System.Convert.ToInt16 (textBox1.Text, 16);

그 다음 주소 텍스트 상자에 그 값을 넣으십시오 (제 경우에는 0378입니다).

+0

Ok하지만 드라이버 관리자에서 IEEE-1284를 봅니다 - 포트 (COM & LPT). ControlPanel의 Devices and Printers 탭에서 IEEE-1284를 볼 수 있습니다. 장치 및 프린터 탭에서 내가 말한 IEEE-1284 등록 정보를 클릭 함 : 위치 : Port_ # 0002.Hub_ # 0003 – Gigi10012

+0

humm, 포트 주소를 얻는 방법을 잘 모르겠다. 그들은 동일하다 – Miguel71

+0

나는 동일하게 시도했다. 아니오 오류 및 LED가 켜지지 않습니다 – Gigi10012

관련 문제