系統滴答定時器:屬於核心的定時器,用於控制整個系統的執行節拍,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具有隨機訪問和隨位元組執行寫操作的能力,即可以訪問到儲存器內部的任意乙...