Драйвер stm32f103 virtual com port windows 10

Реализуем USB Virtual COM Port на микроконтроллере STM32. Настройка в STM32CubeMx с использованием библиотеки HAL Driver.

Доброго всем дня, сегодняшняя статья будет посвящена реализации виртуального COM-порта для микроконтроллеров STM32. Эта тема уже поднималась на нашем сайте, но, в отличие от всех предыдущих случаев, сегодня мы будем производить все настройки при помощи STM32CubeMx. Собственно, стартуем.

И начинаем с действий, ставших привычными — создаем новый проект в CubeMx. Я буду использовать отладочную плату STM32F4Discovery и, соответственно, выбираю контроллер STM32F407VG при создании проекта.

С этим никаких сложностей возникнуть не должно, все-таки мы уже много раз проделывали это в предыдущих статьях, посвященных STM32CubeMx (статьи про STM32CubeMx), поэтому давайте сформулируем задачу, которую будем сегодня решать.

А задача проста — реализуем поддержку USB Virtual Com Port и отправим тестовый набор данных с платы на ПК. Таким образом, мы должны добиться определения нашей отладочной платы в системе как виртуального COM-порта. А открыв этот порт в какой-нибудь терминальной программе мы должны будем увидеть правильно принятые данные. Просто и наглядно, приступаем к осуществлению.

Первым делом включим поддержку USB в проекте. Для этого посещаем вкладку «Pinout & Configuration»:

USB device

Кроме того, задействуем внешний тактовый генератор (8 МГц), установленный на плате — ровно так же как мы делали в статье про тактирование:

HSE в STM32CubeMx

Осталось выбрать режим работы USB для нашего устройства:

USB CDC class

На этом первый этап настроек проекта закончен, переходим в окно настроек тактирования (вкладка «Clock Configuration»). Здесь нам необходимо обеспечить подачу ровно 48 Мгц для тактирования модуля USB, привожу полную схему с выставленными значениями:

Тактирование USB в STM32CubeMx

Среди многочисленных настроек USB давайте поменяем только PRODUCT_STRING, исключительно теста ради, проверим, как это сработает. Остальное пока не трогаем:

Настройки дескриптора.

В принципе, на этом все, можно смело переходить к генерации проекта и исходного кода…

Немного обождав, пока CubeMx завершит генерацию, получаем готовый проект, в котором выполнена вся необходимая инициализация. Давайте не будем вносить никаких изменений, а просто соберем проект и запрограммируем контроллер. После этого подключаем USB-кабель к плате и в диспетчере устройств видим новое устройство:

Виртуальный COM-порт в Windows.

Если мы зайдем в свойства, то можем увидеть там значения VID и PID, которые были установлены в настройках STM32CubeMx, а кроме того измененную нами строку PRODUCT_STRING:

USB Virtual COM Port на плате STM32F4Discovery.

Никаких сомнений в правильной работе сгенерированного проекта не остается 👍 Но это только часть задачи, нужно реализовать отправку данных. А необходимые для этого функции находятся в файле usbd_cdc_if.c:

  • CDC_Receive_FS() — для приема данных.
  • CDC_Transmit_FS() — для передачи данных.

Итак, давайте в основном цикле нашей программы будем раз в секунду отправлять 8 тестовых байт. Кстати для реализации простейших временных задержек в HAL присутствует функция HAL_Delay(). В качестве аргумента мы должны передавать количество миллисекунд. В общем, получаем такой код:

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USB_DEVICE_Init();
  /* USER CODE BEGIN 2 */
  
  uint8_t testDataToSend[8];
  for (uint8_t i = 0; i < 8; i++)
  {
    testDataToSend[i] = i;
  }

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_Delay(1000);
    CDC_Transmit_FS(testDataToSend, 8);
  }
  /* USER CODE END 3 */
}

Теперь остается только прошить контроллер, открыть терминал и убедиться, что данные принимаются верно. Так и делаем:

Реализация приема данных

Все работает отлично, как и планировалось. Собственно, на этой мажорной ноте мы заканчиваем сегодняшнюю статью, а вместе с ней и обсуждение реализации USB Virtual COM Port при помощи STM32CubeMx. В следующих статьях мы будем работать уже с другими режимами USB, так что оставайтесь на связи 🤝


  1. Главная

  2. Драйверы

  3. Сетевые устройства

  4. Сетевые устройства STM

  5. STM Virtual COM Port

  • STM Virtual COM Port

    Версия:

    6.1.7600.16385
    (09 авг 2018)

    Файл *.inf:
    chibiosrt_virtual_com_port.inf




    Windows Vista, 7, 8, 8.1, 10

В каталоге нет драйверов для STM Virtual COM Port под Windows.
Скачайте DriverHub для автоматического подбора драйвера.

Драйверы для STM Virtual COM Port собраны с официальных сайтов компаний-производителей и других проверенных источников.
Официальные пакеты драйверов помогут исправить ошибки и неполадки в работе STM Virtual COM Port (сетевые устройства).
Скачать последние версии драйверов на STM Virtual COM Port для компьютеров и ноутбуков на Windows.


Версия: 1.3.7.1452 для Windows 7, 8, 10 и 11

Бесплатное ПО

В комплекте идет опциональное ПО

  • Yandex Browser
  • Opera Browser
  • Avast Free Antivirus
  • World of Tanks
  • World of Warships

Version
Download 111712
Total Views 112466
Stock
File Size 6.20 MB
File Type exe
Create Date 6. May 2016
Last Updated 21. November 2017

These drivers are used if you are having issues connecting your flight controller to your PC. This is the 64bit version.

2015-01-24-08_38_11-Device-Manager

Related

Понравилась статья? Поделить с друзьями:
  • Драйвер stm32 virtual com port windows 7 x64
  • Драйвер stk7700d для windows 7 скачать бесплатно
  • Драйвер starforce protection для windows 7 скачать бесплатно
  • Драйвер ssd для установки windows 7 64 bit
  • Драйвер ssd для установки windows 10 lenovo