Нечетные имена SerialPort, которые не работают - PullRequest
2 голосов
/ 07 января 2011

Проблема проста, я кодирую инструмент, который может подключать устройства GPS через функцию IO.Ports.SerialPort в .NET

Все работает нормально, но для просмотра всех доступных интерфейсов COM это выглядиткак:

COM1  
COM2%  
COM3°
COM12$

невозможно подключиться к устройству, которое называется COM3°.Если я просто попытаюсь подключиться вручную к COM3, он отлично работает.

Это фрагмент кода, который я сейчас использую:

For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1
        cbbCOMPorts.Items.Add(System.IO.Ports.SerialPort.GetPortNames(i))
Next

Спасибо за вашу помощь;)

Ответы [ 3 ]

4 голосов
/ 07 января 2011

Я видел это раньше, это было давно. Это ошибка в драйвере, она записывает мусор в реестр. Бобби дал вам место, посмотрите Regedit.exe. Я полагаю, какое-то USB-устройство. Выбросьте его и найдите другого от другого производителя. Вы не хотите иметь дело с драйверами Cr * ppy.

2 голосов
/ 07 января 2011

Помогает ли информация в этом сообщении Connect MSDN помочь?

В частности, я вижу это:

Спасибо за сообщение об этой проблеме. Основная причина этого (RegistryKey.GetValue не может правильно обрабатывать строковые данные с ненулевым символом в конце) будет исправлена ​​в следующей версии .NET Framework.

С уважением, Джастин Ван Паттен

Редактировать : Как отмечено в комментариях выше, эту ссылку и проблему можно найти в существующем вопросе Stackoverflow .

0 голосов
/ 08 января 2011

Это еще одна причина для использования .Net 4.0 при использовании SerialPorts. Вероятно, самой большой проблемой является исправление USB SerialPorts, удаляемого при открытом порту, что приводит ко многим проблемам (да, я знаю, что пользователь не должен ...).

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