Попробуйте вот по такому типу делать отправку данных: while (res != USBD_OK) { res = CDC_Transmit_FS((uint8_t*)message, strlen(message)); } Но в этот цикл следует добавить выход по таймауту, чтобы не висеть при ошибке связи в бесконечном цикле. Злоупотреблять HAL_Delay без необходимости нет смысла. Например: uint8_t res = USBD_FAIL; uint32_t ticks = HAL_GetTick(); while (res != USBD_OK) { res = CDC_Transmit_FS((uint8_t*)message, strlen(message)); if (HAL_GetTick() - ticks > 100 ) { //превышен допустимый таймаут //код обработки таймаута ... } }
Очень полезное видео как всегда! Спасибо👍. А ведь можно еще использовать STM32F103CBT6, у нее 128Кб памяти на борту. А как сделать, чтобы имя правильно в диспетчере устройств отображалось, которое Вы вводили ранее, а не просто устройство USB? Может с ног PA11 и PA12 брать USB, хотя по идее они должны быть параллельны с запаянным на плате. Немного не до конца раскрыто...
@@RADIOSOFT1 . Почему нет смысла. Реализация флешки из stm32 очень часто используется в современных логерах , которые создают pdf отчет. К примеру TempTale Ultra он на STM32L152RCT6 . Я их покупаю чисто ради оригинальных МК .
Попробуйте вот по такому типу делать отправку данных:
while (res != USBD_OK) {
res = CDC_Transmit_FS((uint8_t*)message, strlen(message));
}
Но в этот цикл следует добавить выход по таймауту, чтобы не висеть при ошибке связи в бесконечном цикле. Злоупотреблять HAL_Delay без необходимости нет смысла.
Например:
uint8_t res = USBD_FAIL;
uint32_t ticks = HAL_GetTick();
while (res != USBD_OK) {
res = CDC_Transmit_FS((uint8_t*)message, strlen(message));
if (HAL_GetTick() - ticks > 100 ) { //превышен допустимый таймаут
//код обработки таймаута
...
}
}
Отличное видео, спасибо 🎉
Добрый вечер, какую версию Cube Mx вы используете? У меня нет вкладки usb_device
Может у вас микроконтроллер под который вы пишете не способен в usb?
Здравствуйте 6,12
@@yunushkin88 нет, тот же f103c8t6
Спасибо за stm32
Интересно, только не понятно что можно сделать с этим. Есть какой-то сценарий реального применения ?
@@qa337 любой когда нужен обмен данными между компьютером и устройством
Очень полезное видео как всегда! Спасибо👍. А ведь можно еще использовать STM32F103CBT6, у нее 128Кб памяти на борту. А как сделать, чтобы имя правильно в диспетчере устройств отображалось, которое Вы вводили ранее, а не просто устройство USB? Может с ног PA11 и PA12 брать USB, хотя по идее они должны быть параллельны с запаянным на плате. Немного не до конца раскрыто...
Здравствуйте, у вас канал есть, ещё на какой-нибудь площадке, кроме youtube?
@@totorino666 здравствуйте. Рутуб и вк
@RADIOSOFT1 благодарю
А ты пробовал перед второй отправкой дождаться пока TxState не станет равным нулю?
@@hutoryanin нет
А про Hid устройство и winusb будет видео?
@@РусланХайрулин-з6я не знаю
а будет ролик про юсб флешку из STM?
@@РоманСоловей-б6с не вижу в этом смысла, может быть когда нибудь
@@RADIOSOFT1 . Почему нет смысла. Реализация флешки из stm32 очень часто используется в современных логерах , которые создают pdf отчет. К примеру TempTale Ultra он на STM32L152RCT6 . Я их покупаю чисто ради оригинальных МК .
@@SerogaEmbedded или например документ ехел для логгера был бы очень кстати) такое я б посмотрел тоже