[STM32单片机]之systick定时器学习2
1、利用systick完成分秒计时的时钟,通过上位机观察时钟的变化。
1 //初始化 2 void SysTick_Config(void) 3 { 4 /*disable systick counter */ 5 SysTick_CounterCmd(SysTick_Counter_Disable); 6 /*disable systick interrupt */ 7 SysTick_ITConfig(Disable); 8 /*Counter HCLK clock as SysTick clok source */ 9 SysTick_CLKSourceComfig(SysTick_CLKSource_HCLK_Div8);//SysTick 时钟源为 AHB 时钟除以 8; 10 /*SysTick interrupt each 1000Hz with HCLK equal to 72Mhz */ 11 SysTick_SetReload(9000*1000); //9000/9M=0.001秒 9000*1000=9000 000/9M=1秒 12 /*Enable the SysTick interrupt*/ 13 SysTick_ITConfig(ENABLE) ; 14 } 15 16 //将秒和分的数据上传到上位机 17 18 sec =30 ; //声明秒变量sec 19 min=1; //声明分变量min 20 21 while(1) 22 { 23 FlagStatus Status; 24 Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT); 25 if(Status == RESET) 26 { 27 28 } 29 else 30 { 31 sec++; 32 if(sec == 60) 33 { 34 sec =0; 35 min++; 36 37 } 38 printf("%d:%d\t",min,sec); 39 } 40 41 } 42
课后作业:在此基础上增加小时的表示;由上位机通过发送数据的方式来修改下位机时间。
不用函数库你能够直接通过操作寄存器的方式对SysTick进行配置。

浙公网安备 33010602011771号