stm32中UWTICK使用
__IO uint32_t uwTick;
uint32_t uwTickPrio = (1UL << __NVIC_PRIO_BITS); /* Invalid priority */
HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT; /* 1KHz */
一个32位 全局变量 的数据类型:
从系统上电开始,uwTick 没过一个周期就计数值+1;
HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT; /* 1KHz */
表示1kHZ的频率,即为:
T = 1 / 1k = 0.001s = 1ms
也就是说,uwTick没过1ms计数值+1,可以直接模拟定时器的周期定时使用:
uint23_t current_time;
void Period(void){
if(uwTick - current_time >=10){
/*更替“时间戳”*/
current_time = uwTick ;
/*每过10ms,执行以下逻辑功能*/
/*....................*/
}else{
}
}