STM32 и USB-HID — это просто

На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать

Прошивка STM32 с помощью STM32 Flash Loader Demonstrator

Ко мне периодически обращаются с вопросом — как прошить STM32?

В STM32 есть встроенный Bootloader, затереть его в отличие от Arduino нельзя, никаких фьюз-битов тоже настраивать не нужно. То есть в любом новом проце с завода есть все, чтобы его прошить через обычный COM порт или USB-UART переходник.
Почему такая простая операция вызывает проблемы, я не знаю, но решил, что проще один раз показать 🙂

Я взял для примера плату из этого поста, но принцип абсолютно одинаковый для любых плат:

  1. пин BOOT0 подтянуть к питанию (3.3V)
  2. подключить USART1 микроконтрллера черех переходник USB-UART к ПК.
  3. запустить Flash Loader Demonstrator и залить прошивку
  4. отключить переходник USB-UART (не обязательно)
  5. подтянуть BOOT0 к земле (нормальное положение)
  6. если питание не отключали, то нажать Reset на плате, если отключали — пора подключить питание

Вот и все операции.
Показываю наглядно:

Надеюсь, теперь у всех все получится 🙂

STM32 + EmBlocks — мигаем светодиодами

Сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:STM32F103C8-Blink
Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Поехали