STM32 滴答定時器

2021-09-09 00:27:39 字數 722 閱讀 9688

在arm cortex-m3核心中有乙個systick定時器,它是乙個24位的倒計數定時器,當計數到0時,它就會從load暫存器中自動重灌定時初值,只要不把ctrl暫存器中的enable清0,它就永不停。對於滴答定時器的理解主要分為下面幾項:

1.滴答定時器的時鐘**

看上面的圖會有乙個錯覺,以為滴答定時器是系統時鐘的1/8,其實不是,滴答定時器的時鐘既可以是hclk/8,也可以是hclk,這個是通過ctrl暫存器進行設定的,了解這一點,對於作業系統的時鐘計算很重要,因為要精確計算時鐘時間

#define ahb_input  72  //請按rcc中設定的ahb時鐘頻率填寫到這裡(單位mhz)

void delay_us(u32 us){ //us微秒級延時程式(參考值即是延時數,72mhz時最大值233015)

systick->load=ahb_input*us;      //重灌計數初值(當主頻是72mhz,72次為1微秒)

systick->val=0x00;        //清空定時器的計數器

systick->ctrl=0x00000005;//時鐘源hclk,開啟定時器

while(!(systick->ctrl&0x00010000)); //等待計數到0

systick->ctrl=0x00000004;//關閉定時器

對於STM32滴答定時器複習

好久都沒有複習一下關於stm32硬體部分的知識,每次都是在不停的抄襲其他人開發板的資料和程式,自己也沒有乙個很好的總結,所以,最近打算,重新閱讀一下關於stm32資料手冊和一些晶元手冊,按照自己的想法,看看自己能不能憑藉著自己的能力重新編寫那些 因為自己購買的stm32的開發板是正點原子的,所以,在...

STM32F103 滴答定時器定時不准

緣由 做了五片同樣的板子,功能是使用板子上的感測器採集資料後,利用stm32f103串列埠將資料傳輸出去,就其中一片板子資料傳輸比其他的慢,原本正常使用串列埠115200波特率傳輸一幀資料只需要1s多,而那塊板子傳輸資料得十幾秒。一開始用示波器對時鐘測量都是ok的,外部晶振也是8mhz起振。在看程式...

stm32 系統滴答定時器Systick

systick定時器簡介 systick定時器就是系統滴答定時器,systick定時器,是乙個簡單的定時器,對於st的cm3,cm4,cm7核心晶元,都有systick定時器。systick定時器常用來作延時,或者實時系統的心跳時鐘,這樣可以節省mcu資源,不用浪費乙個定時器。systick定時器是...