День добрый всем !
Работать с STM32 я начал недавно, поэтому сильно не пинайте.
Суть такая: Есть МК stm32f103c8t6. В процессе настройки программы я использовал UART и переходник-мост USB-COM. Но ведь на борту имеется
USB модуль. Взял шаблон из библиотеки и организовал в контроллере CDC устройство, то бишь Виртуальный COM порт. Всё работает, всё нормально.
Единственная загвоздка, что каждый раз после сброса МК он перегружается, а вот хост на компе нет. Поэтому приходиться тупо выключать и обратно включать тем самым проводить повторную энумерацию и т.д. Физически.
Мне это надоело, постоянно вынимать и опять вставлять штекер разъёма. На Мегах АВР с USB всё было много проще. Функции Attach() и Detach(). С библиотеками для STM32 всё сложнее. Никак не могу организовать программно со стороны МК подключение к компу заново.
Нашёл в библиотеках STM32 функции
Код
@brief Connect the USB device
* @param hpcd: PCD handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd)
{
__HAL_LOCK(hpcd);
HAL_PCDEx_SetConnectionState (hpcd, 1);
USB_DevConnect(hpcd->Instance);
__HAL_UNLOCK(hpcd);
return HAL_OK;
}
/**
* @brief Disconnect the USB device
* @param hpcd: PCD handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd)
Вроде как аналоги Attach() и Detach(). В мануале сказано, что HAL_PCD_DevDisconnect() даёт команду хосту на отключение, затем надо сделать паузу не менне 5 мс, далее вызываем HAL_PCD_DevConnect() и хотст проводит новую процедуру энумерации, как было-бы если я тупо вынул и вставил по новой штекер USB устройства в Хост.
Но что-то никак не получается...

"Люди добрые ! Поможите чем можете ! (с)
Может я чего не понимаю, или криво делаю. Если есть примеры кода - напишите пожалуйста. Без разницы, хоть в прямом доступе к регистрам, хоть SPL, HAL или LL... Мне главное суть присходящего понять, и вообще возможно-лт это ?
Заранее благодарен за ответы.
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.