Visual Studio 2010을 사용하고 C# (.NET 3.5)에서 프로그래밍하고 있습니다.C#에서 COM10 이상의 포트에 액세스
COM10에서 데이터를 쓰거나 읽으 려합니다. 여기
가에 대한 간단한 코드입니다 : 내가SerialPort Port = new SerialPort(Portname,9600,.....);
에서 "COM10"로
Portname
을 사용할 때마다
static void Main(string[] args)
{
String Portname = String.Empty;
/* List out all COM ports present on the computer. */
foreach (string ports in SerialPort.GetPortNames())
{
Console.WriteLine(ports);
/* If COM10 exists, copy the name for further use. */
if (ports == "COM10")
{
Portname = ports; //I also tried this: "\\.\\COM10";
}
}
/* If COM10 not found, return */
if (Portname == String.Empty)
{
Console.WriteLine("Exiting");
return;
}
SerialPort Port = new SerialPort(Portname,
9600, // Baudrate
Parity.None, //Parity
8, //DataBits
StopBits.One); //Stop Bits
Port.Open();
for (int count = 0; count < 5; count++)
{
Port.WriteLine("\nHello");
}
Port.Close();
while (true);
}
, 그것은 포트 'COM10이'
존재하지 않습니다같은 오류를 제공합니다
Port.Open()
에 COM10이 없으면 Port.Open()
명령에 도달하지 않아야합니다.
다른 방법으로 Portname을 "\. \ COM10"으로 시도했습니다.
주어진 포트 이름이 COM/com으로 시작되지 않거나 유효한 직렬 포트로 해결되지 않습니다.
이는 COM9보다 큰 모든 포트 번호에서 발생합니다.
탈출구가 있습니까?
ops 죄송합니다. 이미 사용하고 계신 것을 확인하지 못했습니다. 방금 포트 == "COM10"을 보았고 당신이 그것을 통과 시켰다고 가정했습니다.이 경우 어쩌면 당신은 @Robert Harvey의 방법을 시도 할 수 있습니다. com 포트를 탈출 한 방법은 적절한 unc 경로가 아닙니다. 어쩌면 @ "\\. \ COM10"을 사용해보십시오. – user44298
"\. \"을 시도하고 있지만 "\\. \"(이스케이프와 함께 끝나는 "\\\\. \\"이어야 함)에 유의하십시오. 그러나 어쨌든, 이것은'CreateFile'을 위해 필요했습니다. .NET에서이 트릭이 필요 없다고 생각했습니다. – mtrw
@ivo s & @mtrw 두 트릭이 작동하지 않았습니다 ... "포트 이름을 '\'으로 시작할 수 없습니다."오류가 발생합니다. – Swanand