电赛培训-23-07-12

stm32定时器

SysTick控制寄存器:
在SysTick_Config函数中,需要传进一个参数,代表着多少个tick触发一次中断。这个参数是一个32位的寄存器,但是只有24位有效,因此最大值是2^24-1,也就是16777215,也就是16Mhz的时钟下,最大延时是1s。如果需要更长的延时,需要自己写一个计数器,然后在中断中进行判断。
有一个变量是SystemCoreClock,代表当前时钟速度。把这个变量除以多少,就是把一秒分成多少份来计时。
在SysTick_Handler这个函数中,每次计时器触发中断都会调用这个函数,可以设置一个静态变量来进行计数,例如每1ms触发中断,就让这个函数每500次进入中断才执行某个行为,就能实现每500ms执行一次某个行为。

按键中断


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!