Нужен виртуальный ком порт, способный передавать данные непрерывно и от нагрузки не зависающий, не зависающий, если выдернули шнур и т.д. На просторах интернета не удается найти стабильную реализацию данного режима на StdPerph, на hall есть очень стабильные варианты под STM32f103, работающие под операционкой реального времени, но мне нужно без излишеств на StdPerph. У кого, что есть кидайте. Свой глюченый пример почищу, отдельно выложу, может его можно исправить.STM32f4xx + USB CDC + StdPerph
- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
STM32f4xx + USB CDC + StdPerph
Привет всем, замучился я с юсб из примера от ST
Нужен виртуальный ком порт, способный передавать данные непрерывно и от нагрузки не зависающий, не зависающий, если выдернули шнур и т.д. На просторах интернета не удается найти стабильную реализацию данного режима на StdPerph, на hall есть очень стабильные варианты под STM32f103, работающие под операционкой реального времени, но мне нужно без излишеств на StdPerph. У кого, что есть кидайте. Свой глюченый пример почищу, отдельно выложу, может его можно исправить.
Нужен виртуальный ком порт, способный передавать данные непрерывно и от нагрузки не зависающий, не зависающий, если выдернули шнур и т.д. На просторах интернета не удается найти стабильную реализацию данного режима на StdPerph, на hall есть очень стабильные варианты под STM32f103, работающие под операционкой реального времени, но мне нужно без излишеств на StdPerph. У кого, что есть кидайте. Свой глюченый пример почищу, отдельно выложу, может его можно исправить.- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
Re: STM32f4xx + USB CDC + StdPerph
Например, вот все стандартно на библиотеке от ST http://mikrocontroller.bplaced.net/word ... ge_id=1263 Таких примеров море. Что мы видим, полное отсутсвие проверки, что можно пихать новые данные в ЮСБ, как так вообще? Задаю огромный буфер, но если пихать в юсб больше, чем этот буфер, то оно загинается через несколько секунд. Все примеры рассчитаны на отправку пары слов в минуту
#define CDC_DATA_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */
#define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */
#define CDC_IN_FRAME_INTERVAL 0 /* Number of frames between IN transfers */
#define APP_RX_DATA_SIZE 1024*20 /* Total size of IN buffer:
APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL */ - это что типа и все на чем держится эта библиотека, задаем буфер побольше, скорость поменьше?
это родная функция которая заполняет кольцевой буфер отправки, ничего не проверяя, отправились данные или нет, тупо по кругу в него гонит их и все
//----------
// Ein Byte in den Sendepuffer eintragen
//----------
void UB_VCP_DataTx (uint8_t wert)
{
APP_Rx_Buffer[APP_Rx_ptr_in] = wert;
APP_Rx_ptr_in++;
if(APP_Rx_ptr_in >= APP_RX_DATA_SIZE)
{
APP_Rx_ptr_in = 0;
}
}
#define CDC_DATA_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */
#define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */
#define CDC_IN_FRAME_INTERVAL 0 /* Number of frames between IN transfers */
#define APP_RX_DATA_SIZE 1024*20 /* Total size of IN buffer:
APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL */ - это что типа и все на чем держится эта библиотека, задаем буфер побольше, скорость поменьше?
это родная функция которая заполняет кольцевой буфер отправки, ничего не проверяя, отправились данные или нет, тупо по кругу в него гонит их и все
//----------
// Ein Byte in den Sendepuffer eintragen
//----------
void UB_VCP_DataTx (uint8_t wert)
{
APP_Rx_Buffer[APP_Rx_ptr_in] = wert;
APP_Rx_ptr_in++;
if(APP_Rx_ptr_in >= APP_RX_DATA_SIZE)
{
APP_Rx_ptr_in = 0;
}
}
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32f4xx + USB CDC + StdPerph
[uquote="GFX",url="/forum/viewtopic.php?p=3153323#p3153323"]Все примеры рассчитаны на отправку пары слов в минуту[/uquote]
тут не пару: http://tomeko.net/miniscope_v2f/index.php?lang=en
Использована, насколько помню, стандартная ST библиотека, правда это STM32F0x2 USB Full Speed Device Library.
Применял тоже эту библиотеку (Virtual COM Port), работало стабильно.
Там же на сайте есть осциллограф на F1 и F3 - может пригодится.
тут не пару: http://tomeko.net/miniscope_v2f/index.php?lang=en
Использована, насколько помню, стандартная ST библиотека, правда это STM32F0x2 USB Full Speed Device Library.
Применял тоже эту библиотеку (Virtual COM Port), работало стабильно.
Там же на сайте есть осциллограф на F1 и F3 - может пригодится.
- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
Re: STM32f4xx + USB CDC + StdPerph
[uquote="oleg110592",url="/forum/viewtopic.php?p=3153351#p3153351"]правда это STM32F0x2[/uquote] Спасибо, но с F0 я его не портирую. У кого еще, что есть на примете?
- 240265
- Электрический кот
- Сообщения: 1029
- Зарегистрирован: Сб мар 09, 2013 11:29:22
- Откуда: 40RUS, Жуков
Re: STM32f4xx + USB CDC + StdPerph
По вышепреведенной ссылке есть вариант miniscope_v2d там на Ф303 , посмотрите.
IVL ex UA6PJ
Re: STM32f4xx + USB CDC + StdPerph
Вот это:
http://forum.easyelectronics.ru/viewtop ... 17&t=27404
собран девайс на "BluePill" (F103), работает через BT или USB.
Я пробовал, вещь рабочая. Цеплял и на Android, и на Windows PC.
Мои фотки:
http://bildites.lv/a/xfjbphbf#33yk2zed
----------
http://tomeko.net/miniscope_v2d/index.php?lang=en
Я там тоже в конце статьи засветился - с переделанным "BluePill" , с чипом F303
http://forum.easyelectronics.ru/viewtop ... 17&t=27404
собран девайс на "BluePill" (F103), работает через BT или USB.
Я пробовал, вещь рабочая. Цеплял и на Android, и на Windows PC.
Мои фотки:
http://bildites.lv/a/xfjbphbf#33yk2zed
----------
http://tomeko.net/miniscope_v2d/index.php?lang=en
Я там тоже в конце статьи засветился - с переделанным "BluePill" , с чипом F303
Последний раз редактировалось Juris Пн сен 04, 2017 12:22:21, всего редактировалось 1 раз.
Re: STM32f4xx + USB CDC + StdPerph
По-моему, проблема вообще надумана, кубом генерится проект под любой мк и потом убирается все лишнее, включая HAL, если он не нужен.
Re: STM32f4xx + USB CDC + StdPerph
[uquote="Reflector",url="/forum/viewtopic.php?p=3175927#p3175927"]По-моему, проблема вообще надумана, кубом[/uquote]
Не говори-ка, одно но - можно же сразу и без разгребания шлака калокуба/спл нормально делать...
http://mcu.goodboard.ru/viewtopic.php?id=40
Не говори-ка, одно но - можно же сразу и без разгребания шлака калокуба/спл нормально делать...
http://mcu.goodboard.ru/viewtopic.php?id=40
Re: STM32f4xx + USB CDC + StdPerph
[uquote="dosikus",url="/forum/viewtopic.php?p=3176056#p3176056"]Не говори-ка, одно но - можно же сразу и без разгребания шлака калокуба/спл нормально делать...
http://mcu.goodboard.ru/viewtopic.php?id=40[/uquote]
Это для F1/F3 и т.д., а нужно для F4.
http://mcu.goodboard.ru/viewtopic.php?id=40[/uquote]
Это для F1/F3 и т.д., а нужно для F4.
- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
Re: STM32f4xx + USB CDC + StdPerph
[uquote="Reflector",url="/forum/viewtopic.php?p=3175927#p3175927"]По-моему, проблема вообще надумана, кубом генерится проект под любой мк и потом убирается все лишнее, включая HAL, если он не нужен.[/uquote]Что-то говорит мне, что хол этот не разгрести, к тому же он лепит систему реально времени, на сколько я помню, но могу ошибаться. Мне хол и система реального времени не нужны. Самый простой путь, казалось бы, починить то, что есть, но я тонкостей работы юсб не знаю и в его реализацию в стм тоже не вникал. Может когда дойдут руки, а пока хотелось бы проверенное решение без зависаний и отвалов юсб.
Re: STM32f4xx + USB CDC + StdPerph
[uquote="GFX",url="/forum/viewtopic.php?p=3176229#p3176229"]Что-то говорит мне что хол этот не разгрести, к тому же он лепит систему реально времени, на сколько я помню, но могу ошибаться. Мне хол и система реального времени не нужны. Самый простой путь казалось бы починить то, что есть, но я тонклстей работы юсб не знаю и в его реализацию в стм тоже не вникал. Может когда дойдут руки, а поеа хотелось бы проверенное решение без зависаний и отвалов юсб.[/uquote]
Нет там никакой системы реального времени, там в одном месте идет настройка портов и приоритетов прерываний, нужно заменить на свое, еще раз 5 встречается пауза завязанная на SysTick, ее тоже меняешь на что угодно, остается 3 *.c из HAL(stm32f4xx_ll_usb и пара stm32f4xx_hal_pcd/pcd_ex) и соответствующие хедеры, плюс еще парочка хедеров в которых всякие макросы/перечисления по мелочи... В принципе в таком виде уже все можно и оставить, единственная возможная проблема в том, что StdPerph и HAL писали одни и те же индусы, потому какие-то имена там могут пересекаться и тогда в той части где используется HAL их придется переименовать.
Нет там никакой системы реального времени, там в одном месте идет настройка портов и приоритетов прерываний, нужно заменить на свое, еще раз 5 встречается пауза завязанная на SysTick, ее тоже меняешь на что угодно, остается 3 *.c из HAL(stm32f4xx_ll_usb и пара stm32f4xx_hal_pcd/pcd_ex) и соответствующие хедеры, плюс еще парочка хедеров в которых всякие макросы/перечисления по мелочи... В принципе в таком виде уже все можно и оставить, единственная возможная проблема в том, что StdPerph и HAL писали одни и те же индусы, потому какие-то имена там могут пересекаться и тогда в той части где используется HAL их придется переименовать.
Re: STM32f4xx + USB CDC + StdPerph
Reflector, ты меня удивляешься. А чем юсб девайс отличается у линеек в старой периферии.
На тебя г. либы так действуют?
На тебя г. либы так действуют?
Re: STM32f4xx + USB CDC + StdPerph
[uquote="dosikus",url="/forum/viewtopic.php?p=3176280#p3176280"]Reflector, ты меня удивляешься. А чем юсб девайс отличается у линеек в старой периферии.
На тебя г. либы так действуют?[/uquote]
Ты же про USB ничего не знаешь, взял готовую либу для F1 и пользуешься, а я брал кубовские проекты разных серий и максимально упрощал. У меня даже эндпоинты живут в отдельном классе и на одном из методов этого класса я могу продемонстрировать разницу между F1 и F4... Для примера возьмем метод Endpoint::activate() и ему сопутствующие, сначала для F4:
Теперь F1/F3:
Как видно общего между этими двумя методами выполняющими одно и то же крайне мало, причем если в данном случае проще иметь дело с F4, то в других может быть и наоборот. Нельзя взять либу для F1, чуть ее подправить и заставить работать с F4, а ты лезешь со своей либой для F1 уже не в первую тему, где требуется работа с F4. И CDC, а по твоему линку я вижу только намерение с этим CDC разобраться, но не похоже, что это было сделано...
На тебя г. либы так действуют?[/uquote]
Ты же про USB ничего не знаешь, взял готовую либу для F1 и пользуешься, а я брал кубовские проекты разных серий и максимально упрощал. У меня даже эндпоинты живут в отдельном классе и на одном из методов этого класса я могу продемонстрировать разницу между F1 и F4... Для примера возьмем метод Endpoint::activate() и ему сопутствующие, сначала для F4:
Спойлер
Код: Выделить всё
void Endpoint::activate()
{
if (is_in)
{
USBxDev()->DAINTMSK |= USB_OTG_DAINTMSK_IEPM & (1 << num);
if (!(in(num)->DIEPCTL & USB_OTG_DIEPCTL_USBAEP))
{
in(num)->DIEPCTL |= (maxPacket & USB_OTG_DIEPCTL_MPSIZ) | (uint32_t(type) << 18) |
(num << 22) | USB_OTG_DIEPCTL_SD0PID_SEVNFRM | USB_OTG_DIEPCTL_USBAEP;
}
}
else
{
USBxDev()->DAINTMSK |= USB_OTG_DAINTMSK_OEPM & ((1 << num) << 16);
if (!(out(num)->DOEPCTL & USB_OTG_DOEPCTL_USBAEP))
{
out(num)->DOEPCTL |= (maxPacket & USB_OTG_DOEPCTL_MPSIZ) | (uint32_t(type) << 18) |
USB_OTG_DIEPCTL_SD0PID_SEVNFRM | USB_OTG_DOEPCTL_USBAEP;
}
}
}
auto USBxDev() { return (USB_OTG_DeviceTypeDef*)((uint32_t)hpcd.Instance + USB_OTG_DEVICE_BASE); }
auto Endpoint::in(uint32_t i)
{
return (USB_OTG_INEndpointTypeDef*)((uint32_t)hpcd->Instance + USB_OTG_IN_ENDPOINT_BASE + i * USB_OTG_EP_REG_SIZE);
}
auto Endpoint::out(uint32_t i)
{
return (USB_OTG_OUTEndpointTypeDef*)((uint32_t)hpcd->Instance + USB_OTG_OUT_ENDPOINT_BASE + i * USB_OTG_EP_REG_SIZE);
}
Теперь F1/F3:
Спойлер
Код: Выделить всё
void Endpoint::activate()
{
setType(type);
setAddr(num);
if (is_in)
{
btableGet(0) = (pmaadress >> 1) << 1; //setTxAddr(pmaadress);
clearTxDTOG();
setStatus(EpTxStatus::Nak);
}
else
{
btableGet(4) = (pmaadress >> 1) << 1; //setRxAddr(pmaadress);
setCntRxReg(rxCnt(), maxpacket);
clearRxDTOG();
setStatus(EpRxStatus::Valid);
}
}
volatile uint16_t& epref() { return *(&USB->EP0R + num * 2); }
void Endpoint::setType(EpType type)
{
epref() = epref() & USB_EP_T_MASK | uint16_t(type);
}
void Endpoint::setAddr(uint16_t bAddr)
{
epref() = USB_EP_CTR_RX | USB_EP_CTR_TX | (epref() & USB_EPREG_MASK) | bAddr;
}
uint32_t& Endpoint::btableGet(uint32_t offset)
{
return *(uint32_t*)((USB->BTABLE + num * 8 + offset) * 2 + ((uint32_t)USB + 0x400));
}
void Endpoint::clearTxDTOG()
{
if (epref() & USB_EP_DTOG_TX)
{
epref() = epref() & USB_EPREG_MASK | USB_EP_CTR_RX | USB_EP_CTR_TX | USB_EP_DTOG_TX;
}
}
void Endpoint::clearRxDTOG()
{
if (epref() & USB_EP_DTOG_RX)
{
epref() = epref() & USB_EPREG_MASK | USB_EP_CTR_RX | USB_EP_CTR_TX | USB_EP_DTOG_RX;
}
}
void Endpoint::setStatus(EpTxStatus state)
{
uint16_t regVal = epref() & USB_EPTX_DTOGMASK;
if (USB_EPTX_DTOG1 & uint32_t(state)) regVal ^= USB_EPTX_DTOG1;
if (USB_EPTX_DTOG2 & uint32_t(state)) regVal ^= USB_EPTX_DTOG2;
epref() = regVal | USB_EP_CTR_RX | USB_EP_CTR_TX;
}
void Endpoint::setStatus(EpRxStatus state)
{
uint16_t regVal = epref() & USB_EPRX_DTOGMASK;
if (USB_EPRX_DTOG1 & uint32_t(state)) regVal ^= USB_EPRX_DTOG1;
if (USB_EPRX_DTOG2 & uint32_t(state)) regVal ^= USB_EPRX_DTOG2;
epref() = regVal | USB_EP_CTR_RX | USB_EP_CTR_TX;
}
void Endpoint::setCntRxReg(uint32_t& reg, uint32_t wCount)
{
uint16_t wNBlocks;
(wCount > 62) ? calcBLK32(reg, wCount, wNBlocks) : calcBLK2(reg, wCount, wNBlocks);
}
void Endpoint::calcBLK32(uint32_t& reg, uint32_t wCount, uint32_t wNBlocks)
{
wNBlocks = wCount >> 5;
if (!(wCount & 0x1F)) wNBlocks--;
reg = (uint16_t)((wNBlocks << 10) | 0x8000);
}
void Endpoint::calcBLK2(uint32_t& reg, uint32_t wCount, uint32_t wNBlocks)
{
wNBlocks = wCount >> 1;
if (wCount & 1) wNBlocks++;
reg = (uint16_t)(wNBlocks << 10);
}Как видно общего между этими двумя методами выполняющими одно и то же крайне мало, причем если в данном случае проще иметь дело с F4, то в других может быть и наоборот. Нельзя взять либу для F1, чуть ее подправить и заставить работать с F4, а ты лезешь со своей либой для F1 уже не в первую тему, где требуется работа с F4. И CDC, а по твоему линку я вижу только намерение с этим CDC разобраться, но не похоже, что это было сделано...
Re: STM32f4xx + USB CDC + StdPerph
[uquote="Reflector",url="/forum/viewtopic.php?p=3176313#p3176313"]Ты же про USB ничего не знаешь, взял готовую либу для F1 и пользуешься, ..[/uquote]
То есть , ты даже и ссылку не смотрел...
То есть , ты даже и ссылку не смотрел...
Re: STM32f4xx + USB CDC + StdPerph
[uquote="dosikus",url="/forum/viewtopic.php?p=3176390#p3176390"]То есть , ты даже и ссылку не смотрел...[/uquote]
Что конкретно не нравится? Я за теми двумя темами следил с момента создания, если намекаешь, что тема вообще-то про L1/F3(насколько помню, сайт сейчас не открывается), то там тот же модуль USB, что и у F1. Для F0 я не переделывал, но судя по регистрам там есть небольшие дополнения, все остальное идентично... Так в чем проблема? Ты взял готовую либу для F0, а не для F1?
Что конкретно не нравится? Я за теми двумя темами следил с момента создания, если намекаешь, что тема вообще-то про L1/F3(насколько помню, сайт сейчас не открывается), то там тот же модуль USB, что и у F1. Для F0 я не переделывал, но судя по регистрам там есть небольшие дополнения, все остальное идентично... Так в чем проблема? Ты взял готовую либу для F0, а не для F1?
Re: STM32f4xx + USB CDC + StdPerph
Проблема , и проблема лишь твоя , что ты воспринимаешь окружающий мир только сквозь либы.
Расширь свой кругозор...
Расширь свой кругозор...
- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
Re: STM32f4xx + USB CDC + StdPerph
Добрый день. Вот либа, которую я использую в ослике. Проект под Кейл, все собирается заливается работает и виснет через некоторое время:))) Хотя некоторые говорят, что работает хорошо. Суть такова, что от либы я не смог найти оповещение о окончании передачи, пробовал и так и сяк, но непрерывно передавать не выходит. Я передаю по 32 кбайта и занимаюь в реальной программе чем-нибудь. Проект минимальный, ничего считай нет кроме самой либы. Кто шарит, что в ней не так, по свободе может посмотрите. Либа переделана каким-то американцем(хотя национальность его не знаю), либа эта официальный пример от STM. https://yadi.sk/d/w-8-vz8K3Ng3GT
- GFX
- Поставщик валерьянки для Кота
- Сообщения: 2040
- Зарегистрирован: Вт окт 23, 2012 18:36:14
- Откуда: Ростов-на-Дону
Re: STM32f4xx + USB CDC + StdPerph
Тема закрыта, взял рабочую библиотеку из CubeMX.
Re: STM32f4xx + USB CDC + StdPerph
Приветствую.
Решил не создавать отдельную тему. Эта подойдет, наверное.
Извиняюсь, если вопрос идиотский.
Имею "синюю таблетку" c STM32F103C8T6. Прорабатываю на ней (учусь работать с STM32) инерциальный трекер (протокол Hatire +прога OpenTrack). Задача - реализовать виртуальный COM через USB.
Воспользовался STM-овской библиотечкой STM_USB_fs_lib. В процессе пришлось выпаять пришпандоренный добрым китаезой резистор на 10кОм, перманентно подтягивающий Data+ USB к плюсу 3.3В, сделать подтяжку через резистор к ноге PB15 (USB_DISCONNECT_PIN).
Виртуальный ком, в принципе, работает хорошо, в терминале все видно, OpenTrack данные получает и выводит, как надо, ничего не отваливается. Однако, есть момент, который мне не нравится:
Если перезагрузить МК, не отключая соединение в терминале (или в OpenTrack), вывод данных прекращается намертво. Вот для железяки CH340G на ардуине было не так - через некоторое время после сброса, обмен стартовал вновь. Что, конечно, удобно.
Если в описанной ситуации (остановка вывода данных после перезагрузки МК) в терминале нажать "отключение" и пересканировать наличные порты - виртуальный ком для терминала пропадает. Однако, в диспетчере устройств висит. Если контроллер сбрасывать при отключенном соединении, то после его включения все работает нормально.
Что происходит? За своевольное прекращение обмена, МК попадает в игнор у хоста? Но при перезагрузке подтяжка Data+ к 3.3В автоматом пропадает, USB-устройство отключается и подключается вновь. Как избежать этой неприятности? Что-то послать хосту перед ресетом для остановки обмена?
Потыкайте носом хотя бы, куда смотреть.
Решил не создавать отдельную тему. Эта подойдет, наверное.
Извиняюсь, если вопрос идиотский.
Имею "синюю таблетку" c STM32F103C8T6. Прорабатываю на ней (учусь работать с STM32) инерциальный трекер (протокол Hatire +прога OpenTrack). Задача - реализовать виртуальный COM через USB.
Воспользовался STM-овской библиотечкой STM_USB_fs_lib. В процессе пришлось выпаять пришпандоренный добрым китаезой резистор на 10кОм, перманентно подтягивающий Data+ USB к плюсу 3.3В, сделать подтяжку через резистор к ноге PB15 (USB_DISCONNECT_PIN).
Виртуальный ком, в принципе, работает хорошо, в терминале все видно, OpenTrack данные получает и выводит, как надо, ничего не отваливается. Однако, есть момент, который мне не нравится:
Если перезагрузить МК, не отключая соединение в терминале (или в OpenTrack), вывод данных прекращается намертво. Вот для железяки CH340G на ардуине было не так - через некоторое время после сброса, обмен стартовал вновь. Что, конечно, удобно.
Если в описанной ситуации (остановка вывода данных после перезагрузки МК) в терминале нажать "отключение" и пересканировать наличные порты - виртуальный ком для терминала пропадает. Однако, в диспетчере устройств висит. Если контроллер сбрасывать при отключенном соединении, то после его включения все работает нормально.
Что происходит? За своевольное прекращение обмена, МК попадает в игнор у хоста? Но при перезагрузке подтяжка Data+ к 3.3В автоматом пропадает, USB-устройство отключается и подключается вновь. Как избежать этой неприятности? Что-то послать хосту перед ресетом для остановки обмена?
Потыкайте носом хотя бы, куда смотреть.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32f4xx + USB CDC + StdPerph
Всё понимаю, кроме "перегрузить МК". У вас на нём windows, что его перегружать надо?