Ошибка открытия последовательного порта в C # - PullRequest
3 голосов
/ 06 января 2011

Итак, я получаю следующее исключение при попытке открыть 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();
    }
}

}

Ответы [ 2 ]

1 голос
/ 01 декабря 2015

Я отключил comport, а затем снова включил !!

А затем переименовал его, например, в COM6!какой-то COM6.Вот некоторые из шагов:

Панель управления => Диспетчер устройств => Последовательные порты (COM ... => Расширенные настройки =>

Измените имя порта из комбинированного списка,

И удали нитро-PDF в моем принтере устройства

1 голос
/ 06 января 2011

Я разобрался.

Adobe PDF по какой-то причине назначен на COM1.Если я перееду Adobe на COM2, то все хорошо.Я полагаю, поскольку Adobe активно не использует порт, поэтому я не получаю «доступ запрещен».

Я понятия не имею, зачем Adobe PDF вообще нужен последовательный порт.

СПАСИБО за взгляды / голоса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...