Ксения (30.07.2019 00:35, просмотров: 301) ответил Aleksey_75 на "калиброванные временные задержки с помощью цикла холостых команд" - DWT вам в помощь, а систик оставьте под HAL если так хочется.
В файле stm32f4xx_ll_usb.c функция HAL_Delay() вызывается 6 раз. Например: HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
{
...
/* Enable VBUS driving */
(void)USB_DriveVbus(USBx, 1U);
HAL_Delay(200U);
/* Disable all interrupts. */
USBx->GINTMSK = 0U;
...
}
HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx)
{
...
USBx_HPRT0 = (USB_OTG_HPRT_PRST | hprt0);
HAL_Delay(100U); /* See Note #1 */
USBx_HPRT0 = ((~USB_OTG_HPRT_PRST) & hprt0);
HAL_Delay(10U);
return HAL_OK;
}
А в других файлах используется еще чаще.
Если ускорить системный таймер в 10 раз, то все эти задержки окажутся недостаточными. Именно поэтому его нельзя курочить.