STM32F429 系統滴答定時器

2021-10-06 21:33:26 字數 1572 閱讀 4366

系統滴答定時器:屬於核心的定時器,用於控制整個系統的執行節拍,stm32f429是180mhz的,stm32f103最高是72mhz。此處主要是編寫控制時鐘進行延時的程式。

工作流程:利用systick定時器為遞減計數器,設定初值並使能它後,它會每1個系統時鐘週期計數器減,計數到 0時,systick計數器自動重灌初值並繼續計數,同時觸發中斷。只要不把它在systick控制及狀態暫存器中的使能位清除,就永不停息。

bsp_systick.c

#include

"stm32f4xx.h"

void

systick_init

(void);

void

delay_us

(__io u32 ntime)

;static __io u32 timingdelay;

/*系統滴答定時器初始化 */

void

systick_init

(void)}

//層級呼叫

// 180 000000 / 10 0000 =1800

//1800* 1/180 = 10us

//10us*10 0000 = 1000ms = 1s,即傳入10 0000就是延時1s時間。

/** * @brief us延時程式,10us為乙個單位

* @param

* @arg ntime: delay_us( 10 ) 則實現的延時為 10 * 10us = 100us

* @retval 無

*/void

delay_us

(__io u32 ntime)

/*** @brief 獲取節拍程式 *

*函式名稱:timingdelay_decrement

*功能描述:中斷裡呼叫此函式,即沒發生一次中斷,此函式被呼叫,此函式裡的變數

timingdelay 相當於減法計數器

* @attention 在 systick 中斷函式 systick_handler()呼叫

*/void

timingdelay_decrement

(void

)}

在stm32f4xx_it.c系統中斷函式呼叫timingdelay_decrement();

/* @brief  this function handles systick handler.*/

void

systick_handler

(void

)

main.c,其他燈的初始化函式課參考之前的文章:

在實驗設計部分的bsp_led.h

#include

"stm32f4xx.h"

#include

"bsp_led.h"

#include

"bsp_systick.h"

/* @brief 主函式*/

intmain

(void

)}

STM32F429除錯記錄(一)

stm32f429的晶元有兩路can介面 四路串列埠 內部乙太網以及內部dsp處理器等硬體,硬體的豐富程度可見一斑,而且主頻達到180mhz,雖然比a8 a9架構的arm晶元還是差一大截,但是在工業控制上的應用還是比較多的。在程式編寫方面stm32f4系列不管在mdk還是庫函式都有挺大改動,剛著手除...

STM32F429 如何使用SDRAM

關於stm32f429 控制sdram fmc 擴充套件外部sdram 1 原理介紹 為什麼是fmc 不是 fsmc 區別在那裡!stm32f429使用fmc外設來管理擴充套件的儲存器,fmc是flexible memory controller的縮寫,譯為可變儲存控制器。它可以用於驅動包括sram...

STM32F429 如何使用NAND Flash

1 原理介紹 flash即是儲存晶元的一種,其結合了rom和ram的特點,既具備電可擦除程式設計的效能,又可以快速讀取資料,資料不會因斷電丟失。目前市面上flash主要有nor flash和nand flash。nor flash具有隨機訪問和隨位元組執行寫操作的能力,即可以訪問到儲存器內部的任意乙...