Приус 20 установка андроид

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

Доброго всем чего нить

Идеей поставить в приус что то умнее магнитолы зародилась у меня еще давно, года 3-4 назад, в то время, когда у меня еще был америкос 2005 дорестайл.

Однако, при всех плюсах КарПиСи на x86 - мне не нравилось несколько сабжей:
1. Бааааальшой (даже miniITX корпус)
2. Жрет много (т.е. не оставишь включенным, например, когда не на долго уходишь)
3. Грузится долго (даже при выходе из гибернации). Это конечно решается более мощным компом, ssdшкой, НО тогда стает проблема корпуса
4. Отсутствие нормального навигационного софта (всякие костыли для запуска навитела не в счет)
5. Ну и всякие другие "религиозные" причины типа винда сакс ))

Однако время идет и на дворе уже 2012 год, все стает меньше/сильнее/быстрее (наверное за исключением спорта в нашей стране, т.к. опять проиграли олимпиаду), начали появляться маленькие девайсы - и как я думаю все знаете первый популярный звоночек Raspberry PI.
И пофик что его до сих пор почти нереально купить за адекватную цену (ебэй с ценой ~100 зелени не счет).

НО! Китайцы не дремлют и в мае 2012 года мы увидели такой сабж:
mk802.jpg ( 13,89 килобайт ) Кол-во скачиваний: 160

Android MiniPC (если точнее то mk802)
МиниПЦ с вполне хорошими характеристиками:
Allwinner A10 CPU - 1GHz, GPU Mali 400MHz, RAM 512M/1G
С УСБ портом и дыркой под MicroSD.

И вот после этого идея про миниПЦ не давала мне покоя
Потом был апрейд америкоса на шведа (хотел купить 30ку, но не получилось по всяким обстоятельствам)
Во время пока туда сюда менял машины купил камеру заднего вида (и потом поставил её, см в соседней теме),
а так же заказал сиё чудо за тогдашних ~70$ (сейчас на распродажах китайских можно и за 30$ урвать).
Т.к. хотел подключать в моник за место камеры заднего вида, то вдогонку заказал вот такой девайс:
hdmi2avi.jpg ( 13,68 килобайт ) Кол-во скачиваний: 90

Это простой и тупой конвертер HDMI -> AV + звук
Т.к. в этом МиниПиСи конечно же нет GPS, был заказан внешний GPS:
gps.jpg ( 10,95 килобайт ) Кол-во скачиваний: 36

Еще в догонку был заказал цифровой датчик температуры (вдруг пригодится):
dht22.jpg ( 10,42 килобайт ) Кол-во скачиваний: 27

Вообщем время шло, летом как то не было, и на тему забил.
Где то в конце июля бродя по просторам инета заметил куда более интересный девайс:
minix.jpg ( 42,27 килобайт ) Кол-во скачиваний: 345

По сути, этот тот же самый MK802 MiniPC, только в металлическом корпусе, с 2мя полноценными USB портами (хотя зачем то на одном написано что он OTG), с выносной антенной и главное - он со штатным AV выходом!
Долго не думая заказал этот девайс (тоже в районе 70$), тем более что MK802 прямо таки прижился на даче по его прямому назначению - смотреть фильмы и всякую лабуду

Еще так же был заказан AV USB capture, ну и аналоговая мини камера на 700TVL, так, чисто для теста, а если вдруг получится - то будет видеорегистратором

Пока сабж шел начал изучать как сделать AVCLan, оказалось ничего сложного, т.к. уже все давно придумано. (кому интереснее ссылка ).

Arduino уже был, поэтому оставалось только собрать плату. Сначала попробовал собрать на основе микрухи ST485, нифига не получилось.
Решил собирать на 2х микрухах, а их падла нет в магазах, ток под заказ. Заказал.
Решил больше не колхозить и травануть плату.
Вообщем получилось примерно так:
avc_lan_debug2.jpg ( 39,73 килобайт ) Кол-во скачиваний: 272

И вот все в собранном виде:
avc_lan_debug.jpg ( 32,03 килобайт ) Кол-во скачиваний: 149

От адаптера Yatour остался Y кабель, отрезал от него не нужные разъемы:
ycable.jpg ( 10,33 килобайт ) Кол-во скачиваний: 108

Т.к. опыт фтыкания подобного кабеля уже был - взял с собой ардуинку с авц лан шилдом, бук и пошел тестить.
Заработало со сторого раза - первый раз перепутал полярность

Т.к. хочется меньше колхоза, то все это будет использовано с более мелкой ардуиной:
avc_lan_mini.jpg ( 50,11 килобайт ) Кол-во скачиваний: 208

Которая будет впаяна в будущую "мамку".
Проверил такую конструкцию - все отлично работает.

Про звук.
Т.к. AVCLan заработал то пропадает необходимость подключать звук через AUX.
Для этого купил AZ-FM адаптер:
azfm.jpg ( 17,37 килобайт ) Кол-во скачиваний: 85

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

Все вместе:
all_devices.jpg ( 106,99 килобайт ) Кол-во скачиваний: 423

Доброго всем дня! После покупки прульного японца в "S" комплектации встретился с рядом неудобств.
Приёмник есть! Но ничего не ловит. Телевизор есть! Но ничего не показывает. Навигация есть! Но она не работает.
Сначала я занялся поиском приёмника и навигации штатного устройства от европейских модели приуса на ebay.com.
Всё есть но цены за доставку превышали цену стоимости самого устройства. Потом решил поставить адаптер USB. И в поиске этого девайса я встретился с китайским ГУ на основе ANDROID 4.2.2 После долгих перебирание остановился на "этом" девайсе. Причины были следующие.
1.Наличие штатных FM частот.
2. Наличия операционной системы андроид. А это значит любые навигационные программы, интернет и мультимедийность.
3.Рулевое управление.
4. Размер этого устройства составлял 104х205мм. Что отличался от штатного радио ресивера приуса только шириной 230мм. И неплохой интерфейс устройства.
И вот момент настал. Получил подарок с китая. Устройство смотрелось в руках солидно. двухъядерный процессор 1 гиг оперативной памяти и 7 дюймовый экран с 800*480 разрешением. Наличие алюминиевого радиатора и кулера давало надежду на хорошее качество звучание.
Подготовился ко всем трудностям. Изучил схемы . Опробовал устройство в гараже на работоспособность и приступил к установке.
Хочу отклониться от темы и остановиться на работоспособности устройства.
Чувствительность FM модулятора ГУ оказалось не такой избирательной. Если у меня в гараже старая магнитола "тошиба" ловит все волны на отвёртку вставленный в разъём то эта магнитола отказалась воспроизводить музыку чисто. Шум скрежет мерцание индикации знака ST указывала на не устойчивый приём сигнала. Аналоговое телевидение тоже не айс. Вроде чисто показывает звука нет или звук есть показывает в шумах. Хотя на YouTube есть ролики демонстрирующее превосходное качество изображения китайских ГУ. (Возможно мне не повезло)
Разобрал торпеду снял штатное устройство. Установил 68ом на 20ти пиновый разъём. .
Электрическое подключение ГУ оказалось самым простым делом. . Только зря изучал схемы и распиновку. С этой магнитолой пришёл стандартный переходник TOYOTA и он подошёл без никаких доработак. Даже присутствовал разъём контроль руля и с правильной распиновкой. Но когда я прикрутил магнитолу к салазкам оказалось что она не подходит. Посадка была совсем иной. Долго не думая просверлил рядом другие отверстия и спилил фиксаторы салазок. Теперь магнитола будет держатся не на 8 а на 4 винтах. . После такой небольшой доработки магнитола встала как родная. Я возрадовался зело и приступил к завершению сборки. Через несколько минут ГУ уже красовалась в торпеде все остальные элементы дизайна торпеды восстановил и начал юзать девайс!
Каково было моё удивление когда заиграло радио. Качество звучание оказалось превосходным. Очень громко, очень чисто, очень качественно. Это и наличие мягких глубоких низких частот регулировка LUD поднятие низких частот. Прозрачный диапазон высоких частот. Дополнительные возможности эквалайзера по расширению частот.
Установив точку доступа через сотовый телефон. Используя Play Market установил весь необходимый дополнительный софт. Навигацию "City Guide" и "Плеер мечты" Навигация мгновенно определила моё местоположение (походу GPS включён всегда независимо запущено ли навигационное приложение или нет). Плеер мечты загрузил список радиостанций и у меня заиграла любимая музыка. Позже я научился программировать кнопки руля и скажу что возможностей стало ровно в 2 раза больше. Оказывается кнопки программируются дважды на короткое и длительное нажатие. Это значит к примеру одна кнопка может выполнять любые 2 команды. В процессе эксплуатации я встретился с одним неудобством. К примеру сел в машину загрузился андроид. Запустил приложение нашёл радиостанцию включил поехал. Надо заехать в садик за ребёнком выключаешь машину всё отключается. Время, частоты приёмника сохраняются. Я говорю об операционной системе андроид который завершает свою работу. В садике 5 минут забрал ребёнка и всё по новому снова ждать загрузки, снова запускать радиостанцию. Надо заехать в магазин и опять та же песня. И решил я свою ГУ запитать на постоянку. Благо нашёл провод близко и с хорошим сечением, с разъёма OBD2. Теперь я выключаю её сам когда мне надо. В ГУ есть возможность отключить звук и потушить дисплей а потом разбудить.
В заключении могу сказать Что установка китайского ГУ в в наши автомобили 20 приус с переходником для машин TOYOTA не составляет никаких проблем. Можно заказывать совершенно любую понравившуюся модель китайского ГУ с переходником TOYOTA и безбоязненно менять штатный ресивер на более продвинутое, современное, высокотехнологическое мультимедийное устройство на базе Android.
Установка от разборки до полного завершения составило по времени около 1часа:40минут.
Краткий обзор видео загружен тут только не смейтесь это моё первое и думаю последнее видео. Видео доступно только по ссылке.

я тоже говорил что эти чинские шушлайки очень достойно звучат, громко, чисто, сочно, а мне не верят .
планирую брать с ебая двухядрёный, с DVBT-2 тюнером, с вай фай модулем и т.д., на руль можно всё перенести , там и диагностика тебе по вай фай, и регистратор можно сразу замутить и т.д., они в районе 500уе стоят, общался с таким на столе, скорость ну просто ракета, никаких тормозов, всё очень корректно делает, экран просто супер, сенсор точный , даже нашёл у нас в продаже адаптер для JBL систем, у меня ЖБЛ , так что усь останется штатный, а усь в ГУ можно не использовать , греться ГУ при этом будет меньше намного , проживёт ессно дольше .

и ещё, с выключением и включением у меня было не так, я его полностью вырубаю от БП, тобишь полностью обесточиваю, потом включаю и через 5 сек !! всё опять поёт , ничего не грузится с начала, всё запускается моментально , тоже самое происходит когда я отключаю только ACC , он сам тухнет, подаю АСС и он сам через 5 сек готов к работе и поёт с той самой секунды на которой его отрубили

Да Борис звуку даже меломан позавидует.
С выключение очень странно. Скорее всего у тебя не андроид а Windows CE. Если андроид обесточить всё сбрасывается. Это же линукс. Windows CE это как навигаторы питание на них по фиг. После включение приложения начинают работать с того места от куда его прервали.

Да Борис звуку даже меломан позавидует.
С выключение очень странно. Скорее всего у тебя не андроид а Windows CE. Если андроид обесточить всё сбрасывается. Это же линукс. Windows CE это как навигаторы питание на них по фиг. После включение приложения начинают работать с того места от куда его прервали.

Говоряд дроид есть на основе WinCE.
Пройдёт время, надеюсь техника усовершенствуется в китае. Вдруг ещё чё придумают. Куплю денег не пожалею ))

я тоже говорил что эти чинские шушлайки очень достойно звучат, громко, чисто, сочно, а мне не верят .
планирую брать с ебая двухядрёный, с DVBT-2 тюнером, с вай фай модулем и т.д., на руль можно всё перенести , там и диагностика тебе по вай фай, и регистратор можно сразу замутить и т.д., они в районе 500уе стоят, общался с таким на столе, скорость ну просто ракета, никаких тормозов, всё очень корректно делает, экран просто супер, сенсор точный , даже нашёл у нас в продаже адаптер для JBL систем, у меня ЖБЛ , так что усь останется штатный, а усь в ГУ можно не использовать , греться ГУ при этом будет меньше намного , проживёт ессно дольше .

и ещё, с выключением и включением у меня было не так, я его полностью вырубаю от БП, тобишь полностью обесточиваю, потом включаю и через 5 сек !! всё опять поёт , ничего не грузится с начала, всё запускается моментально , тоже самое происходит когда я отключаю только ACC , он сам тухнет, подаю АСС и он сам через 5 сек готов к работе и поёт с той самой секунды на которой его отрубили

Доброго всем дня! После покупки прульного японца в "S" комплектации встретился с рядом неудобств.
Приёмник есть! Но ничего не ловит. Телевизор есть! Но ничего не показывает. Навигация есть! Но она не работает.
Сначала я занялся поиском приёмника и навигации штатного устройства от европейских модели приуса на ebay.com.
Всё есть но цены за доставку превышали цену стоимости самого устройства. Потом решил поставить адаптер USB. И в поиске этого девайса я встретился с китайским ГУ на основе ANDROID 4.2.2 После долгих перебирание остановился на "этом" девайсе. Причины были следующие.
1.Наличие штатных FM частот.
2. Наличия операционной системы андроид. А это значит любые навигационные программы, интернет и мультимедийность.
3.Рулевое управление.
4. Размер этого устройства составлял 104х205мм. Что отличался от штатного радио ресивера приуса только шириной 230мм. И неплохой интерфейс устройства.
И вот момент настал. Получил подарок с китая. Устройство смотрелось в руках солидно. двухъядерный процессор 1 гиг оперативной памяти и 7 дюймовый экран с 800*480 разрешением. Наличие алюминиевого радиатора и кулера давало надежду на хорошее качество звучание.
Подготовился ко всем трудностям. Изучил схемы . Опробовал устройство в гараже на работоспособность и приступил к установке.
Хочу отклониться от темы и остановиться на работоспособности устройства.
Чувствительность FM модулятора ГУ оказалось не такой избирательной. Если у меня в гараже старая магнитола "тошиба" ловит все волны на отвёртку вставленный в разъём то эта магнитола отказалась воспроизводить музыку чисто. Шум скрежет мерцание индикации знака ST указывала на не устойчивый приём сигнала. Аналоговое телевидение тоже не айс. Вроде чисто показывает звука нет или звук есть показывает в шумах. Хотя на YouTube есть ролики демонстрирующее превосходное качество изображения китайских ГУ. (Возможно мне не повезло)
Разобрал торпеду снял штатное устройство. Установил 68ом на 20ти пиновый разъём. .
Электрическое подключение ГУ оказалось самым простым делом. . Только зря изучал схемы и распиновку. С этой магнитолой пришёл стандартный переходник TOYOTA и он подошёл без никаких доработак. Даже присутствовал разъём контроль руля и с правильной распиновкой. Но когда я прикрутил магнитолу к салазкам оказалось что она не подходит. Посадка была совсем иной. Долго не думая просверлил рядом другие отверстия и спилил фиксаторы салазок. Теперь магнитола будет держатся не на 8 а на 4 винтах. . После такой небольшой доработки магнитола встала как родная. Я возрадовался зело и приступил к завершению сборки. Через несколько минут ГУ уже красовалась в торпеде все остальные элементы дизайна торпеды восстановил и начал юзать девайс!
Каково было моё удивление когда заиграло радио. Качество звучание оказалось превосходным. Очень громко, очень чисто, очень качественно. Это и наличие мягких глубоких низких частот регулировка LUD поднятие низких частот. Прозрачный диапазон высоких частот. Дополнительные возможности эквалайзера по расширению частот.
Установив точку доступа через сотовый телефон. Используя Play Market установил весь необходимый дополнительный софт. Навигацию "City Guide" и "Плеер мечты" Навигация мгновенно определила моё местоположение (походу GPS включён всегда независимо запущено ли навигационное приложение или нет). Плеер мечты загрузил список радиостанций и у меня заиграла любимая музыка. Позже я научился программировать кнопки руля и скажу что возможностей стало ровно в 2 раза больше. Оказывается кнопки программируются дважды на короткое и длительное нажатие. Это значит к примеру одна кнопка может выполнять любые 2 команды. В процессе эксплуатации я встретился с одним неудобством. К примеру сел в машину загрузился андроид. Запустил приложение нашёл радиостанцию включил поехал. Надо заехать в садик за ребёнком выключаешь машину всё отключается. Время, частоты приёмника сохраняются. Я говорю об операционной системе андроид который завершает свою работу. В садике 5 минут забрал ребёнка и всё по новому снова ждать загрузки, снова запускать радиостанцию. Надо заехать в магазин и опять та же песня. И решил я свою ГУ запитать на постоянку. Благо нашёл провод близко и с хорошим сечением, с разъёма OBD2. Теперь я выключаю её сам когда мне надо. В ГУ есть возможность отключить звук и потушить дисплей а потом разбудить.
В заключении могу сказать Что установка китайского ГУ в в наши автомобили 20 приус с переходником для машин TOYOTA не составляет никаких проблем. Можно заказывать совершенно любую понравившуюся модель китайского ГУ с переходником TOYOTA и безбоязненно менять штатный ресивер на более продвинутое, современное, высокотехнологическое мультимедийное устройство на базе Android.
Установка от разборки до полного завершения составило по времени около 1часа:40минут.
Краткий обзор видео загружен тут только не смейтесь это моё первое и думаю последнее видео. Видео доступно только по ссылке.

Пару вопросов возникло.
У вас полный мульти руль? После установки все работает, все функции родного бортового? С руля печка и голосовое так же управляется?


All@diN



GGvital




Новичок


GGvital




Новичок


GGvital




Новичок


41rus


99_8213.pdf ( 443,95 килобайт ) Кол-во скачиваний: 442
Вот инфа. Может поможет.


Реклама партнёров


41rus



MrDima




Старик


GGvital




Новичок


MrDima




Старик


41rus


P_20140809_160338.jpg ( 1,01 мегабайт ) Кол-во скачиваний: 278
P_20140809_161249.jpg ( 848,43 килобайт ) Кол-во скачиваний: 221

Это не рамка,это колхоз .Выпилил из эбонита. P_20140809_165255.jpg ( 911,21 килобайт ) Кол-во скачиваний: 170


MrDima




Старик

А-а, во как даже, я смотрю по фоткам ты даже крышку перчаточного ящика подпиливал, без этого 2 din не встает?


Реклама партнёров


41rus


можно было и неподпиливать,ну то что сделано,то уже сделано. Майфун китаец,на андроиде. Но качество хорошее.Подключил к нему камеру з.в. У меня дорестайл без камеры.


Денис_89




Новичок


MrDima




Старик

Я думаю GGtavil не будет против если я выложу те фотки которые он мне прислал:
01.JPG ( 39,53 килобайт ) Кол-во скачиваний: 361
02.JPG ( 36,66 килобайт ) Кол-во скачиваний: 283
03.JPG ( 59,04 килобайт ) Кол-во скачиваний: 303

04.JPG ( 63,2 килобайт ) Кол-во скачиваний: 205
05.JPG ( 59,36 килобайт ) Кол-во скачиваний: 174
06.JPG ( 67,74 килобайт ) Кол-во скачиваний: 278

07.JPG ( 51,68 килобайт ) Кол-во скачиваний: 333
08.JPG ( 59,15 килобайт ) Кол-во скачиваний: 264


А началось все с того, что у меня появился Prius.

Родилась идея как-то соединить Android магнитолу с автомобилем более плотно, чем предлагают братья-китайцы. Об этом и статья.

Исходная ситуация

Итак. На борту имеется около 7-дюймовый дисплей с резистивным тач-скрином, соединенный с прочей электроникой линиями TX+ и TX-. И таких пар от головы идет аж 3. В схеме это чудо поименовано AVC-LAN, и выглядит следующим образом:


Часть 1: Осматриваемся внутри

Как видно, голова стоит в разрыве сети, между маршрутизатором и дальнейшей цепочкой из магнитолы, усилителя (он отдельный у меня), и по отдельному каналу следует связь с блоком навигации. Где-то еще болтается блок автопарковки, никак не упомянутый в имеющихся у меня схемах. Ну, что ж… я решил отложить близость с оным до лучших времен. Тем более, что автопарковка — скорее игровая ф-ция, нежели реально нужная.

Убрав все лишнее, получим примерно следующую блок-схему устройств:


Размышления

Встречались в сети решения с установкой китайской магнитолы вместо радиоресивера. Это меня не устроило тем, что два дисплея — необоснованная избыточность. Имхо.

Решение

Родилось следующее решение: заменить целиком голову, и доработать андроид-магнитолу, подружив ее с Prius-ом, для чего:

  1. Разработать аппаратный конвертер USB AVC-LAN
  2. Разработать firmware к нему, чтобы он подключался, как USB-HID.
  3. Сделать его composite, чтобы одна из функций детектировалась, как обычная аппаратная клавиатура (с целью использовать в качестве нативного управления с кнопок на панели)
  4. Разработать Android-приложение с функционалом, аналогичным (или превосходящим) родной, приусовский
  5. Согласовать работу задней камеры
  6. Решить задачи по механической части (установка на штатное место)

Выглядеть это все должно следующим образом:


В качестве аппаратной основы было решено использовать обучающую плату на SM32F103:


заказанную с AliExpress за $2.05.

Возможно, лот уже удален продавцом, поэтому даю магическую строку для поиска по Ali:
STM32F103C8T6 ARM STM32 Minimum System Development Board Module

Чем она мне нравится:

  • Аппаратный модуль USB(Device) на борту у процессора
  • Адекватный USB-стек от производителя (в отличие от Freescale-овского, не к ночи будь помянут).
  • Свободные порты GPIO, которые можно использовать для подключения штатных кнопок по бокам монитора. Возможно, это позволит скрыть под панелью аппаратные кнопки магнитолы. Я пока не знаю, какой она будет
  • И на нее можно навесить конвертер AVC-LAN в логические уровни

В любом случае, статей планируется несколько, в разных хабах. Проект получается уж сильно FullStack — от аппаратного подключения до андроид-приложения.

Часть 2: USB, HID, дескрипторы, и все, чтобы получить пилотный прототип

Первым этапом я хотел получить связку устройства и телефона, причем чтобы устройство могло передать пакет на телефон, а тот — отобразить его в приложении.
Как говорил Гагарин: Поехали!

USB HID Composite device на STM32

Взяв за основу CubeMX от STM, и прочитав много статей о том, как можно реализовать кастомный HID, я обнаружил в сети одну неприятную вещь: практически нет или весьма скудно рассмотрен вопрос создания составных устройств.

Исходные коды пока не выкладываю, по причине того, что проект сейчас реализуется в экспериментально-учебном режиме. Если проект будет успешно завершен — обязательно перетащу их на Github, и отредактирую статью ссылкой на оные.
В том виде, в котором они есть, выкладывать бессмысленно — бардака в интернете и без меня хватает.

USB, Composite, HID

Буквально несколько слов на эту тему. Предполагается, что Вы более или менее знакомы со стандартом USB. Если нет — лучше сначала ознакомится и поэкспериментировать с примерами из CubeMX.

Стек USB от STM и пример реализации мыши. Там у нас настроены какие-то дескрипторы и функциональная конечная точка. Это помимо пары 0x00 и 0x80 для управления устройством целиком.

Для реализации моего проекта требуется, чтобы конечная точка клавиатуры была двунаправленной (не знаю, зачем — пригодится) и еще пара конечных точек, которые будут использованы для обмена данными со второй — RAW — функцией. Добавляем их.

Делаем точку двунаправленной, добавляя в дескриптор точку OUT:

При правке дескриптора следите за индексами и размерами.
(2c5cf968121f0d8fa43a6755c09e15ef3a317791):

И добавляем еще пару точек:

Это был дескриптор конфигурации. Теперь хост будет уверен, что у нас есть некое составное HID-устройство, и во все эти точки можно слать данные. Но это пока не так.
Для того, чтобы это стало правдой:

1. В нашем контроллере есть специально выделенный кусочек памяти, который тактируется вместе с модулями CAN и USB. Учитывая, что модуль USB самостоятельно занимается процессом приема/передачи пакета данных, нужно задать ему буферы в этом кусочке памяти для каждой отдельно взятой конечной точки:

Адреса буферов произвольные, лишь бы не пересекались.

Почему-то стек от ST написан из расчета, что в устройстве будет не более одной двунаправленной конечной точки, потому чуть дорабатываем стек:

Передача

Процедуру USBD_HID_SendReport переименовываем в USBD_HID_SendReportEP, добавляя еще один параметр — номер конечной точки. Процедуру со старым именем оставляем для обратной совместимости, но в теле вызываем USBD_HID_SendReportEP с константой в виде конечной точки. Решение пока не самое эстетичное, но для эксперимента сойдет, и даже если и останется — конкретному проекту это жить мешать не будет.

Теперь для отправки данных все готово, остается лишь в нужный момент вызвать эту функцию.

Финализация

Порядка ради ищем по проекту и вызываем USBD_LL_CloseEP еще раз, но для вновь созданных конечных точек.

Прием

Для того, чтобы конечные точки морально настроились на работу, нужно вызвать для них USBD_LL_PrepareReceive. Рекомендую читателю пробежаться поиском по проекту на предмет этой строки, и адаптировать эти вызовы под свои нужды.

У меня в коде получилась вот такая вот некрасивая каракатица:

Т.е. я исходил из того, что номера конечных точек идут подряд. Это плохо, имхо. Не делайте так. Впрочем, и как ST тоже не делайте.

Дальше остается только сходить в файл usbd_hid.c, а конкретно в функцию USBD_HID_DataOut, и позаботится о том, чтобы вызов обработчика принятых данных соответствовал вашим личным представлениям о прекрасном. У меня получилось тоже не очень, поэтому код и описание получатся длинными и непонятными. Проще сделать самому.

Репорт


Этот репорт говорит HID-драйверу: тут будут какие-то 31 байт данных. Не нужно разбираться, что за они — просто отдай их открывшей это устройство программе. В физическом репорте нулевой байт будет равен индексу репорта (REPORT_ID (2)). Соответственно, всего придет 32 байта.

Читайте также: