然后调试到HAL_Delay()方法的内部发现 HAL_GetTick( )函数一直返回 __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) { wait += (uint32_t)(uwTickFreq); } ...
加一个最小值{wait+=(uint32_t)(uwTickFreq);}while((HAL_GetTick()-tickstart)<wait)// 主要看这里,延时多久主要看while的条件// 也就是当前时间-开始时间>wait退出{
__weakvoidHAL_Delay(uint32_tDelay){uint32_ttickstart=HAL_GetTick();uint32_twait=Delay;/* Ad...
争取让大家好理解一点,也同时加深自己的理解,中断和中断虚拟机实在太绕了,直接看代码那就是看天书,...
HAL_GetTick函数使用 描述: 用于获取系统运行时间,返回值类型uint32_t,单位毫秒ms。 示例: 根据使用的外设,关闭未使用外设的初始化 /* Initialize all configured peripherals */MX_GPIO_Init();//开启GPIO初始化函数// MX_I2C1_Init();// MX_USART1_UART_Init();// MX_USART2_UART_Init();// MX_...