STM32----SysTick实现监控开机时长
SysTick實現(xiàn)監(jiān)控開機(jī)時長
systick系統(tǒng)定時器,又叫滴答定時器。在我看來比TIM使用起來要簡單。
在實現(xiàn)監(jiān)控開機(jī)時長的例子中:配置定時器以相同的時間間隔進(jìn)入中斷,在中斷不斷累加計數(shù)變量,然后利用計數(shù)變量和時間間隔計算出相應(yīng)的時長。
首先是對SysTick的配置,主要配置其進(jìn)入中斷的時長,一般來說SysTick使用的AHB時鐘,計數(shù)計數(shù)器加一的時間為1/72000000s.在SysTick_Config()函數(shù)中參數(shù)為進(jìn)入中斷的計數(shù)。配置好后,計數(shù)器中的數(shù)值即為配置的數(shù),每一個時鐘周期計數(shù)器中的數(shù)減一,當(dāng)計數(shù)器中的數(shù)為0時觸發(fā)中斷,進(jìn)入中斷服務(wù)函數(shù)。
SystemCoreclock的值為系統(tǒng)時鐘的值72MHz。對于配置函數(shù)SysTick_Config(),配置成功返回0,配置失敗返回1.
SysTick->CTRL表示SysTick的使能位。
在這里SysTick_Config()函數(shù)的參數(shù)為SystemCoreclock/1000,經(jīng)過計算可以知道進(jìn)入中斷一次的時間為1ms。
t = (1/72000000) * (SystemCoreclock/1000)
設(shè)置變量在中斷中統(tǒng)計進(jìn)入中斷的次數(shù),從而得到時間。
變量Delay_Times用來統(tǒng)計進(jìn)入中斷的次數(shù),變量count_1s和flag控制串口每隔1秒鐘向上位機(jī)打印一次。
主函數(shù):
總結(jié)
以上是生活随笔為你收集整理的STM32----SysTick实现监控开机时长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: malloc 不能返回动态内存
- 下一篇: C和C++里的const常量、volat