在HAL中,我们常常要使用一些常见的函数,其中一个重要的函数就是hal_gettick。 Hal_gettick函数是一个时间戳函数,它可以获取当前世界时钟(World Clock)时间。在某些需要定时和时间相关的操作中,我们可以利用该函数获得时间信息,从而实现我们需要的各种操作。使用hal_gettick函数也有一定的步骤,以下是详细的解释: Step 1...
之前也遇到过这个问题后来把HAL_Delay 去掉了. 然后发现不行, 还是得有它.不然发串口数据发的太快会乱掉. 得慢点发. 然后调试到HAL_Delay()方法的内部发现 HAL_GetTick( )函数一直返回 __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* A...
HAL库中有很多的获取某个变量的函数,例如获取系统时钟频率的函数HAL_RCC_GetSystemCoreClockFreq,我们前面介绍的HAL_GetTick函数,获取定时器的计时数值函数__HAL_TIM_GET_COUNTER,还有获取串口中断标志位状态函数USART_GetFlagStatus,获取当前 RTC 时间HAL_RTC_GetTime等众多函数,我们可以利用这些函数获取我们想要的信息。
HAL_Delay(1000); //延时1000ms 2 非堵塞式等待 借用系统的开机时间,可以边等待边完成其它任务,不占用CPU,比较推荐这种方式。 需要用到函数 HAL_GetTick() 1uint32_t startTime,now;23startTime=HAL_GetTick();45while(1){//循环开始6now=HAL_GetTick();78if((now-startTime)>1000)//等待时间到9{10br...
HAL_GetTick函数用于获取32位的全局变量 uwTick 当前的值,这个值每1ms加1,那么HAL_GetTick() 应该返回的就是自启动以来经过的毫秒数。uwTick可以以毫秒为单位提供时间,那么可以用它来计时,事实上很多HAL函数都依赖它来计时的,例如我们之前使用的HAL_Delay函数。 __weak void HAL_Delay(uint32_t Delay){...
uint32_t HAL_GetTick()函数返回的是当前uwTick的值。 假设uwTick已经计数到65530,调用HAL_Delay(10); tickstart = 65530,但是wait是11,那么当uwTick=65535+1,就会溢出uwTick= 0, 执行while((HAL_GetTick() – tickstart) < wait){} 当HAL_GetTick()返回0时的情况:(HAL_GetTick() – tickstart) =(...
__weak uint32_t HAL_GetTick(void) 返回从系统运行开始经过的时间,默认情况下单位为ms; __weak void HAL_Delay(uint32_t Delay) 延时,该延时是阻塞的,默认情况下延时单位为ms,该函数不能在等于或高于系统时钟源优先级(默认情况下为0)的中断程序中使用,不然程序就阻塞在这里不动了; ...
1 HAL_StatusTypeDef HAL_RCC_DeInit(void) 2 { 3 uint32_t tickstart; 4 5 /* 将HSION位置1,使能HSI振荡器 */ 6 SET_BIT(RCC->OCENSETR, RCC_OCENSETR_HSION); 7 8 /* 获取全局变量uwTick当前计算值 */ 9 tickstart = HAL_GetTick(); 10 11 /* 等待HSI准备就绪 */ 12 while ((RCC->OC...
函数通过HAL_GetTick()获取计数值,计数值1ms加1,直到加到你写入的值,跳出最后的while循环,程序结束。 uwTickFreq这个值是为1的,也就是说会多延时1ms,这样做是为了防止用户写入延时0ms这种无意义的延时。 注意:这个函数是有中断的,不要把这个函数放到自己的中断回调函数里,如果SysTick定时器中断的优先级小于你使用...
函数HAL_GetTick用于获取全局变量uwTick当前的计数。 函数HAL_GetTickPrio用于获取滴答时钟优先级。 函数HAL_SetTickFreq和HAL_GetTickFreq是一对,前者用于设置滴答中断频率,后再用于获取滴答中断频率。 函数HAL_Delay用于阻塞式延迟,默认单位是ms。 函数HAL_SuspendTick和HAL_ResumeTick是一对,前者用于挂起滴答定时器,后...