стек смотрел?
(0x2214FB02) - четта цифирь охуенно большая, оч. похожая на бит-банд регион.
внешней памяти нету?
во вторых. шоза йобань?
hUsbDevice_0 это у нас указатель? так он NULL

проздравляю.
Внешней памяти нет.
Ты не меня поздравляй - ты "то,что в ST MCD application team сидят,мягко говоря,веселые ребята"(C)ur4lvn
лучше поздравь - это их код из коробки. Я специально создал свежий проект, где нет ни хрена - даже пауза программная, и та - коробочная из HAL. Ни чего лишнего - один USB.
Проверку на !NULL я конечно ставил - а хули с неё толку, там же инстанс не появится по мановению волшебной палочки и данные не примутся от этого.
Вынужден констатировать: это ёбаный косяк.
Очередной, блядь, ёбаный косяк в библиотеках от ST для работы с USB.
А ещё я хочу посмотреть в глаза пользователям, которые говорят "а у меня всё работало"(С)
У них, блядь, или куб какой-то другой, или они немного пиздят.
Вот точно такое у людей было:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
приглушеный мат из зала:
всем здравствуйте. Нужна помощь с генерировал по статье код для MDK-ARM v5 stm32l152 выдает предупреждение
..\Src\main.c(97): warning: #223-D: function «CDC_Transmit_FS» declared implicitly
//----------------------------
если во время подключения к ПК принять через ком порт данные и, закрыв соединение, отключить провод, то иногда при повторном подключении устройство улетает в HARDFAULT_handler из функции USBD_CDC_DeInit через функцию USBD_free(pdev->pClassData);
может, кто то сталкивался???
...
сам решил проблему:
в файле usbd_conf надо закоментить 494 строку
//free(p); проблема сразу решилась и без плясок с бубном как на видео
//-----------------------------
лрическое отступление:
ААААААААААААААААААААА!
#define APP_RX_DATA_SIZE 4
#define APP_TX_DATA_SIZE 4
Блядь, они шо ебанутыенахуйблядь? Запускаю эхо - хардфаулт при передачи 5 байт. По 4 - работат. Я выше писал, шо заподозрил 1 int? Хуйня - я был не прав. ВОТ ОНО ГДЕ!
Почему они не пишут в файле кто писал? Мне нужно имя. Я хочу знать кому надо сломать руку.
Там же, оказывается, есть ДВА места, где задается буфер!!
Интересно, а кому я в настройках его задаю? Кому он в сетапе стоит?
#define CDC_DATA_HS_MAX_PACKET_SIZE 64 нахуя? проверять, что я первый дефайн не поставил больше, чем второй? И как я должен догадаться, что где-то в глубине глубин файла, сука .С!! С, карл! Не .h! есть ещё 2 дефайна в 62 и 63 строке... а вокруг - никого, и ещё строк через 60 - массивы, которые пользуют эти дефайны. Ну почему не в usbd_def?
"пидорасы, сэээр"(С)
Продолжаем приглушеный мат из зала
У меня проблема решилась уменьшение максимального размера пакета с
512 до 64
#define CDC_DATA_HS_MAX_PACKET_SIZE 64
тоже лулзовато, это должно в зависимости от камня считаться ещё в кубе
щоб проект запрацював, треба у функції CDC_Transmit_FS змінну UserTxBufferFS змінити на Buf і плюс до того, якщо 64б віндовс, то у стартапі проекту змінити Stack_Size EQU 0x00004000 та Heap_Size EQU 0x00002000. А так все працює. Дякую.
Вот это я не понял, но проверил. Там и так Buf (может куб более старой версии был с таким глюкалом), а стек и куча не спасают от хардфаулта.
И, как водится, автор статьи и мощного кода
HAL_Delay(1000);
CDC_Transmit_FS(testDataToSend, 8);
который ни у кого не работает:
Но вообще странно, что у многих людей возникает эта ошибка, у меня на большом количестве разнообразных плат никогда такого не было.
Блядь, он точно запускал этот свой код из 2х строчек?