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