Виртуальный COM-порт Stm32 - не удается подключиться

Это код, часть моего проекта;

  //----------------------------------------------------------------------------
  // USB: Virtual COM ----------------------------------------------------------
  //----------------------------------------------------------------------------
  USB_Interrupts_Config();
  Set_USBClock();
  USB_Init();

  while (bDeviceState != CONFIGURED)
      ;

  //----------------------------------------------------------------------------
  // Main Loop -----------------------------------------------------------------
  //----------------------------------------------------------------------------
  while(1)
  {
    USB_printf("Main Function");

    GPIO_SetBits(GPIOC, GPIO_Pin_10);
    Wait(200);
    GPIO_ResetBits(GPIOC, GPIO_Pin_10);
    Wait(200);
  }

После подключения моего USB к цепи установка драйвера виртуального COM-порта завершается правильно, и мигание светодиода также в порядке.

Но когда я пытаюсь подключить COM-порт через Hyper Terminal или сторонние инструменты, я не могу этого добиться.

Есть мнение?

Спасибо..


person cbr    schedule 06.03.2013    source источник


Ответы (2)


У меня была аналогичная проблема с немного другой формулировкой - к устройству можно подключиться до его сброса. Моя пользовательская плата правильно перечисляла VCP, но не подключалась после перезагрузки устройства. Получается, что USB-хост сохраняет указанный адрес устройства, а устройство теряет свой адрес после сброса/перепрограммирования. Чтобы избежать таких проблем, программный сброс должен также выполнять сброс физического уровня USB (отключение подтяжки на контакте D+/D-, в зависимости от используемой скорости). В таком случае должна быть возможность подключиться к устройству после отключения, а затем повторного включения его в диспетчере устройств или повторного подключения.

person stiebrs    schedule 06.11.2018

Не обязательно ответ, но, возможно, стоит проверить.

Если вы периодически отправляете информацию из COM-порта, и кажется, что ваша программа делает это (никогда не использовала STM32), Windows (гипертермин, поэтому я предполагаю, что Windows XP) может определить это как последовательную мышь и перечислить ее как мышь, тем самым открывая порт и предотвращая любое другое приложение от его использования.

У нас было много проблем с этим с нашими устройствами (CP2103 от SiLabs), а также с приемниками GPS.

Этот ответ GPS обнаружен как последовательная мышь как хорошее описание проблемы и возможные обходные пути.

person Dampsquid    schedule 06.03.2013
comment
Windows может перечислять неправильно настроенные HID-устройства как мышь, но не как VCP. У меня на самом деле та же проблема, что и у оператора, это перечисление выполняется правильно, как порт COMx, просто он не подключается - person stiebrs; 24.10.2018