Есть ли способ использовать последовательный порт на 2-3 Мбит / с? - PullRequest
4 голосов
/ 15 июня 2011

Мне нужно передавать последовательные данные в и из приложения C # для Windows на ПК со скоростью 2-3 Мбит / с. C # winforms кажется не очень доволен этим.

openFileDialog.Filter =
    @"Image Files(*.bmp;*.jpg;*.jpeg;*.gif)|*.bmp;*.jpg;*.jpeg;*.gif|All files (*.*)|*.*";
if (openFileDialog.ShowDialog() != DialogResult.OK) return;
var image = Image.FromFile(openFileDialog.FileName);
serialPort1.Open();
// Now send the image at 2-3 mbps
...

BaudRate = 115200 работ. BaudRate = 230400 вызывает исключение System.IO.IOException.

enter image description here

Ответы [ 6 ]

9 голосов
/ 16 июня 2011

Откройте диспетчер устройств и разверните «порты».

enter image description here

дважды щелкните COM1 и перейдите на вкладку «Настройки порта»

enter image description here

В списке «Bits per second» перечислены значения, которые вы можете ввести в поле свойств для вашего com-порта.Если вы хотите больше, чем позволяет ваше оборудование, вам нужно другое оборудование или использовать что-то другое, чем последовательный порт, для передачи между двумя устройствами.

Если вы оставите в комментариях, к какому другому устройству вы подключаетесьМы можем предложить лучший способ.

4 голосов
/ 07 декабря 2015

Этому посту 4 года, поэтому для тех, кто на него споткнется:

Во-первых, оборудование последовательного порта должно поддерживать передачу данных. Во-вторых, водитель должен позволить вам выбрать желаемую скорость передачи данных. Некоторые драйверы или чипы могут требовать настройки, чтобы позволить вам выбирать нестандартные (или выше, чем 115200) скорости передачи данных. Максимальная скорость передачи нескольких USB / последовательных чипов, с которыми я сталкивался:

  • Silicon Labs CP2102 и CP2109 : 921,6 кбит / с
  • FTDI FT232R : 3 Мбит / с
  • Prolific PL-2303HX и PL-2303HXD : 12 Мбит / с

Я сейчас использую FT232R @ 1Mbps

Относительно использования C # и .NET: .NET, похоже, засасывает последовательные порты. См. http://www.sparxeng.com/blog/software/must-use-net-system-io-ports-serialport (который ссылается на эту тему и как я сюда попал).

Сотрудник создал для меня программу на c # .NET для связи со скоростью 1 Мбит / с с использованием FT232R с .NET 3.5. Он работал на его ПК и ноутбуке, но вместо этого на моем компьютере он зависал на скорости 9600 бит / с. Пробовал несколько вещей, включая удаление драйвера, перезагрузку, холодный запуск и ручную установку драйвера безрезультатно. Затем он перекомпилировал его для .NET 4 и вуаля, все заработало. Самое смешное, что сразу после этого он передал мне небольшую модификацию, но по ошибке скомпилировал ее для .NET 3.5, но она сработала.

4 голосов
/ 16 июня 2011

Если ваше оборудование поддерживает эти скорости, то и Windows тоже.Класс .NET SerialPort может разрешить или не разрешить вам установить такую ​​высокую скорость передачи, если нет, то попробуйте вызвать SetCommState.

2 голосов
/ 18 июня 2011

Я использовал последовательные порты BlueTooth, работающие на скорости 1 Мбит / с, и казалось, что все равно, какая скорость установлена.

2 голосов
/ 15 июня 2011

Нет. Это ограничение оборудования. глядя на внутренности, похоже, что у окон есть макс.

http://msdn.microsoft.com/en-us/library/aa363189(v=vs.85).aspx

0 голосов
/ 16 июня 2011

Последовательные порты обычно поддерживают скорость до 115200 бит / с или чуть более 14 Кбит / с.Некоторые устройства поддерживают более высокую скорость передачи, но вы далеко от 2-3 Мбит / с.

Есть ли конкретная причина, по которой вы выбираете использовать последовательный порт?Несмотря на то, что он все еще используется, он широко устарел в пользу более современных подходов.Если вы осуществляете передачу между процессами на одном компьютере, лучше использовать именованный канал или просто использовать файловую систему.Если вы осуществляете передачу между двумя компьютерами, рассмотрите возможность использования сетей TCP / IP.

Эта ссылка на MSDN рассказывает о различных транспортах, которые рекомендует и поддерживает WCF, и может быть хорошим местом для начала поиска.http://msdn.microsoft.com/en-us/library/ms733769.aspx

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