实际延时是1001ms。 我们看下代码 typedefenum{HAL_TICK_FREQ_10HZ =100U,HAL_TICK_FREQ_100HZ =10U,HAL_TICK_FREQ_1KHZ =1U,HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ} HAL_TickFreqTypeDef;HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT;/* 1KHz */#defineHAL_MAX_DELAY 0xFFFFFFFFU_...
configTICK_RATE_HZ的值一般默认被设置为1000,表示系统时钟每秒产生1000个tick,即每个tick的时间间隔为1毫秒,此时osDelay对单个任务延时的时间长度和HAL_Delay近似。
21.2 、HAL_Delay函数;21.3 、SysTick高精度延时实验;21.4 、编译和测试;21.1 SysTick简介 21...
请编写程序实现按键动作的检测,编写以下程序。 (1)主程序。 (2)连接按键引脚和LED引脚的初始化程序。 (3)按键检测程序。 假设已有延时函数voiddelay_ms(u16nms);,此函数可直接调用。 【答案】 #defineKEY_ON#defineKEY_OFF(1) intmain(void) 1 0 delay_init(168);1/初始化延时函数 LED_GPIO_Config():...
第二十一章Systick高精度延时实验 前面章节的实验我们使用的是HAL库里自带的API函数HAL_Delay来实现毫秒级别延时的,如果使用到更高精度的延时,例如us级别的延时,我们可以使用定时器来实现,也可以使用SysTick的时钟摘取法来实现。本节,我们介绍如何使用SysTick来实现us级别的延时。 ...
假设已有延时函数voiddelay_ms(u16nms);,此函数可直接调用。 【答案】 #defineKEY_ON 1 #defineKEY_OFF 0 (1) intmain(void) { delay_init(168);//初始化延时函数 LED_GPIO_Config(); Key_GPIO_Config(); while(1) { if(Key_Scan(GPIOE,GPIO_PIN_5)==KEY_ON) ...