eddy_em: (Default)
[personal profile] eddy_em
С рядом проблем, но таки удалось победить USB HID на STM32. С оптимизацией -O2 прошивка занимает 4.8кБ, оптимизация -Os уменьшает ее до 4.1кБ (но -Os лучше не пользоваться).
Как и в старом примере под STM32F103 с использованием opencm3 просто эмулируется составное HID-устройство: мышь + клавиатура. Командой 'M' в терминале можно сдвинуть курсор мыши, а командой 'K' — вывести на печать фразу "Hello!". Теперь-то моя душенька довольна и можно заняться написанием libMMPP — библиотеки для управления фотометром (Тимур все-таки согласился с тем, что нужно реализовать клиент-серверную архитектуру управления прибором, а чтобы не дергать постоянно внешние утилиты, нужно реализовать все функции MMPP_control и HSFW_manage в отдельной библиотеке).
UPD. Разобрался с косяками и устранил их. Дескрипторы пока не менял — и так нормально работает, но можно при желании заменить на дескрипторы реального устройства такого типа (хотел из дома взять радиоприемник от пары мыша+клавиатура, но забыл).
В прошлой реализации после каждого кода клавиши я посылал код ее отпускания, но теперь сделал продвинутую версию: код отпускания посылается лишь если повторно ту же клавишу нужно нажать, а также в конце строки. Получилось 950 символов в секунду — почти предел для такого способа (с учетом, что каждый пакет идет с интервалом в 1мс). Можно было бы еще круче сделать: забивать все 6 символов поочередно, а затем сдвигать (как будто бы отпускать кнопки начинают лишь когда уже кнопок нажато, и отпуская первую нажимают очередную), очищая буфер лишь в конце, а также при повторе символа. Но это ж думать надо...
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 10:42 pm
Powered by Dreamwidth Studios