STM32 #6. USB - программируем класс - HID устройство, создаем обычную мышку.

  Рет қаралды 9,601

NR.electronics

NR.electronics

2 жыл бұрын

Ссылка на KZfaq-канал:
bit.ly/3KGWq9r
Скачать PVS-Studio:
pvs-studio.com/nr_download
#stm32 #программирование
Продолжаем программировать USB-интерфейс микроконтроллера STM32. В этом видео пишем программу, которая нам позволит работать напрямую микроконтроллеру с компьютером без всяких преобразователей уровней, используя класс - HID (Human Interface Device) для создания манипулятора типа - мышь. Попробуем перемещать мышку на экране монитора и крутить колесиком микроконтроллером, через нашу отладочную плату STM32F4Discovery и STM32CubeIDE.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
/ @nrelectronics
или через Яндекс-деньги:
money.yandex.ru/to/4100115727...
А также переводом по номеру карты:
4377-7237-6190-5714

Пікірлер: 60
@sergatmel8242
@sergatmel8242 2 жыл бұрын
Спасибо, Интересно. Думаю что пригодиться.
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста. На Али можно джойстик купить небо, для ардуино, как раз для перемещения мыши подойдёт.
@CyrusSmith22
@CyrusSmith22 2 жыл бұрын
👍 спасибо)
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста
@user-dc9cp1yl3m
@user-dc9cp1yl3m 7 ай бұрын
Интересно, а данным кодом можно перепрошить мышь? То есть, если например я захотел бы расширить функционал и добавить возможность взаимодействия с мышью через пользовательский интерфейс. Просто у меня есть старая мышь, а покупать новую плашку думаю стоит или нет. Я С пока что только изучаю и поэтому интересно можно или нет
@NRelectronics
@NRelectronics 7 ай бұрын
Думаю что нет, обычно там микросхемы без перепрошивки.
@Embedded_Developer
@Embedded_Developer 2 жыл бұрын
Как всегда #топ!
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо. Стараюсь, получается бывает по-разному)
@alexivanov4022
@alexivanov4022 2 жыл бұрын
Спасибо! Очень ждём пример hid устройства клавиатуры с обработкой светодиодов Caps Num и Scroll.
@NRelectronics
@NRelectronics 2 жыл бұрын
Спасибо. Подумаю) Клавиатуру самому бы хотелось!))
@alexivanov4022
@alexivanov4022 2 жыл бұрын
@@NRelectronics Я клавиатуру написал, но ни как не могу статусы светодиодов вычитывать... 🤔 Может глянете код?
@NRelectronics
@NRelectronics 2 жыл бұрын
Как подойду к клавиатуре посмотрю конечно.
@AndySm1973
@AndySm1973 2 жыл бұрын
Спасибо за подробный разбор! P.S. А курс по "Си" не забыт?
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста) Ни в коем случае не забыть! При моих занятиях рассказываю все равно больше и чаще ;)
@TheAurumsan1
@TheAurumsan1 2 жыл бұрын
Спасибо! Всё-таки хотелось бы больше про предыдущему CDC VCP - пример полноценного обмена с двух сторон. Т.е. со стороны ПК не через терминал, а с помощью открытия устройства и работы с устройством. Как я понял, через этот VCP можно работать гораздо быстрее, чем 115200, которую почти везде ставят, а большинство терминалов даже выше и не показывают, и не дают возможности.
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста. Хорошо, сделаем и приём в одном из роликов между делом. Да, скорость может быть гораздо больше чем 115200, т. к. Full speed USB 2.0 это 12Mb/s, а это около 1,5 МБ/С т.е. очень быстро)) Терминалки разные бывают, можно поискать побыстрее.
@NRelectronics
@NRelectronics 2 жыл бұрын
Нашёл в TeraTerm можно работать на 950кб/с по com- порту.
@TheAurumsan1
@TheAurumsan1 2 жыл бұрын
@@NRelectronics UARTы по проводам ведь соединяются, по сути с такими-же VCP-эмуляторами. Значит и по UARTам штатным можно скорость поднять до скорости ножек контроллера. На C# сегодня попробовал сделать терминал, так там хоть сотню мегабит указывай. А какая реальная скорость ножек контроллера?
@NRelectronics
@NRelectronics 2 жыл бұрын
Реальная ножек контроллера не может быть больше половины частоты внутренней шины на которой они внутри подключены. AHB...
@TheAurumsan1
@TheAurumsan1 2 жыл бұрын
@@NRelectronics ну вот я посмотрел в мануале на F103CB - там первый UART на шине 72 МГц, а другие на 36 МГц и заявлено 4.5 Мбит (72 / 16) и 2.25Мбит соответственно.
@OpenFrimeTVcom
@OpenFrimeTVcom 2 жыл бұрын
читал я в свое время как работает юсб. думаю епрст сколько ж там разных моментов. смотрел как это реализовано в авр. куча регистров в которые хрен пойми что писать. и смотрю в стм все оптимизировали. вопрос только в скорости работы) достаточно ли быстро работает на HAL?
@NRelectronics
@NRelectronics 2 жыл бұрын
Хал снизил порог вхождения достаточно хорошо. Я показал принцип, как и чем это делать. При реализации прерываниями по срабатыванию той или иной кнопки все будет чётче работать, да и к тому же у меня стояло 30 пикселей, это много но наглядно для видео, надо просто уменьшить. На парках можно сделать, но сложнее получается)
@seagsmtrashseagsmtrash1906
@seagsmtrashseagsmtrash1906 2 жыл бұрын
Скорость чаще зависит от самой архитектуры решения. Например, DMA + INT всегда будет быстрее и эффективнее, чем просто опрос. А современные компиляторы делают разницу между CMSIS и HAL принебрежимо малой.
@NRelectronics
@NRelectronics 2 жыл бұрын
От архитектуры реально скорость зависет, прямо хорошо. Согласен.
@seagsmtrashseagsmtrash1906
@seagsmtrashseagsmtrash1906 2 жыл бұрын
@@NRelectronics Ну, если еще добавить о скорости, то не плохо бы делать динамический анализ буферов. У меня одно GUI падало, не часто, но падало. А ему шел постоянный поток данных с борды. Оказалось, когда графики на GUI выводились в большом разрешении, то в какой то момент входной буфер переполнялся и коммуникация падала.
@NRelectronics
@NRelectronics 2 жыл бұрын
Вот поэтому отладка вещь достаточно сложная, многие на это часто забивают. Либо тестами не покрывают.
@user-pp2hz7ic7h
@user-pp2hz7ic7h 2 жыл бұрын
Материал по stm32MP157 будет ?
@NRelectronics
@NRelectronics 2 жыл бұрын
Есть интерес к чему именно в плане микропроцессоров?
@user-pp2hz7ic7h
@user-pp2hz7ic7h 2 жыл бұрын
@@NRelectronics запуска приложений на openg
@NRelectronics
@NRelectronics 2 жыл бұрын
Тогда пока нет. Не планирую.
@user-wb1ow1pk9v
@user-wb1ow1pk9v 2 жыл бұрын
👍🏼
@NRelectronics
@NRelectronics 2 жыл бұрын
👍
@seagsmtrashseagsmtrash1906
@seagsmtrashseagsmtrash1906 2 жыл бұрын
О! Попил он как то у меня крови. Пришлось делать составной девайс, описание дескриптора было очень не ординарным.
@NRelectronics
@NRelectronics 2 жыл бұрын
Расскажите подробнее о своём опыте.
@LebedevVictor
@LebedevVictor 2 жыл бұрын
Вот бы на esp32 по блютусу как hid
@NRelectronics
@NRelectronics 2 жыл бұрын
Там ведь своё SDK есть, всё так сложно?
@serggorod1423
@serggorod1423 Жыл бұрын
Хочу клавиатуру с кнопкой SLEEP.
@NRelectronics
@NRelectronics Жыл бұрын
И я тоже! 😆👌
@user-pu6xf7qy8s
@user-pu6xf7qy8s 2 жыл бұрын
Мышь легко, а вот сенсорный экран это уже другой уровень. Использовал ИК-рамку китайскую и свой чип STM32F103C8. Это было целое искусство. Сначала найти как именно отправлять пакеты, несколько касаний, а потом уже обработка сигнала с фотодиодов. Сейчас развожу ИК-рамку под свой проект. Проект так же собирал через CubeMX
@NRelectronics
@NRelectronics 2 жыл бұрын
Рамки также имеют свой протокол и формат передачи данных. Всё публикуемо. Это не больший и не меньший уровень. А вот мышек и клав на стм почти нет))
@serggorod1423
@serggorod1423 Жыл бұрын
Обещаю, "рас_берусь завтра "!
@NRelectronics
@NRelectronics Жыл бұрын
Расскажите по ом обязательно! 👍
@serggorod1423
@serggorod1423 Жыл бұрын
@@NRelectronics Dog- ryliysь!
@NRelectronics
@NRelectronics Жыл бұрын
what?
@rwkostya
@rwkostya 2 жыл бұрын
Как по мне, pvs - пустая трата времени. Спасибо за видео!
@NRelectronics
@NRelectronics 2 жыл бұрын
Пожалуйста) Вопрос по анализатору интересный, в некоторых конторах требуют полное соблюдение правил MISRA C/C++ для своего кода, поэтому бывает очень полезным.
@seagsmtrashseagsmtrash1906
@seagsmtrashseagsmtrash1906 2 жыл бұрын
соблюдение правил MISRA C/C++ это для эмбеддед устройств очень важный момент. Конечно, оно и так работать будет, а если будет иногда зависать, то можно и перезагрузиться. Но для эмбеддед это далеко не всегда приемлемо. Поэтому никаких memalloc, никаких арифметических операций с поинтерами и так далее. A PVS это просто инструмент. Есть и другие. А IAR так вообще есть встроеный MISRA checker.
@NRelectronics
@NRelectronics 2 жыл бұрын
Согласен с вами. В этом плане IAR хорош IDE. Даже Rust со статическим анализатором.
@Kotofot24
@Kotofot24 Жыл бұрын
Рекламакорявая вышла. Зачем нужен VCP- да нафиг не нужно...
@NRelectronics
@NRelectronics Жыл бұрын
Нужен, очень нужен. И как это относится к этому видео?
@Kotofot24
@Kotofot24 Жыл бұрын
@@NRelectronics Ну так если уж вставляете в виде, покажите зачем оно. Я не знал про него, и по факту до сих пор не знаю. Читать килограмм всякого и говорить что инженеры ST нифига не знают... мне оно не надо.
@NRelectronics
@NRelectronics Жыл бұрын
А вы сами развиваться не хотите? Чтобы в ролике абсолютно всё зачитано? Ничему не научитесь.
What it feels like cleaning up after a toddler.
00:40
Daniel LaBelle
Рет қаралды 56 МЛН
Русалка
01:00
История одного вокалиста
Рет қаралды 7 МЛН
UI на ESP32 своими руками при помощи LVGL
12:34
Kirill Ivanychev
Рет қаралды 5 М.
Custom HID keyboard device | VIDEO 33
23:41
Matej Blagšič
Рет қаралды 9 М.
Use STM32 as a KEYBOARD || F103C8 || USB Device HID
19:19
ControllersTech
Рет қаралды 31 М.