STM32F4xx那点事(四)——定时器的使用及配置
作者:互联网
在使用单片机时,经常要使用到一定时间的延时,而对于像STM32F405RG这种单片机而言,一方面,由于Cortex-M3/Cortex-M4的主频比较高,如果使用for循环或者while循环,循环的变量非常之大,另一方面,使用SysTick实现,延时比较准确。延时程序如下所示:
void DelayMs(unsigned short Time) { SysTick->LOAD=(unsigned long)Time*21000; SysTick->CTRL|=0x01; while(!(SysTick->CTRL&(1<<16))); SysTick->CTRL=0x00000000; SysTick->VAL=0x00000000; } //us void DelayUs(unsigned long Time) { SysTick->LOAD=Time*21; SysTick->CTRL|=0x01; while(!(SysTick->CTRL&(1<<16))); SysTick->CTRL=0x00000000; SysTick->VAL=0x00000000; }
注意:使用MDK仿真时,仿真界面中时间不能正确反应延时的时间。
标签:0x00000000,定时器,CTRL,Time,unsigned,那点,延时,SysTick,STM32F4xx 来源: https://blog.51cto.com/chasingdreams/2382169