Итак, я получаю следующее исключение при попытке открыть COM1 в приложении ac #, используя метод SerialPort.Open ():
"ArgumentException: указанное имя порта не начинается с COM / comили не разрешается в действительный последовательный порт "
Однако, если я отключаю порт Com1 в диспетчере устройств, а затем включаю, все работает нормально.С тех пор проблем нет.Я могу запустить приложение и открыть порт в обязательном порядке.Но если я перезагружаю ПК, у меня возникает та же проблема, пока я не отключаю, а затем включаю.
Com1 не открывается, когда я запускаю компьютер.Когда Com1 открыт, и я пытаюсь открыть его с моим приложением, я не получаю ArgumentException.Скорее я получаю исключение, что доступ к этому порту запрещен.
Я пытался сделать это только на машинах с Windows 7.Я использую VS2010.Я попробовал .net 3.5 и 4.0.
Так что, как я уже сказал, приложение работает нормально, раз я сбросил порт.Есть мысли?
Код (Это простое тестовое приложение):
public partial class Form1 : Form
{
SerialPort port = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();
foreach (string element in ports)
{
textBox1.Text = element + "\r\n";
}
}
private void button1_Click(object sender, EventArgs e)
{
port.PortName = "COM1";
port.BaudRate = 9600;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Handshake = Handshake.None; // Handshake.RequestToSend;
port.ReadTimeout = 1000;
port.WriteTimeout = 500;
try
{
port.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
button1.Text = port.IsOpen.ToString();
}
}
}