系統滴答定時器:屬于內核的定時器,用于控制整個系統的運行節拍,STM32F429是180MHZ的,STM32F103最高是72MHZ。此處主要是編寫控制時鐘進行延時的程序。
工作流程:利用systick定時器為遞減計數器,設定初值并使能它后,它會每1個系統時鐘周期計數器減,計數到 0時,SysTick計數器自動重裝初值并繼續計數,同時觸發中斷。只要不把它在SysTick控制及狀態寄存器中的使能位清除,就永不停息。
SystemInit() 這個函數可以讓主頻運行到180M,可以把它作為systick的時鐘源。
計數方式:24bit向下遞減的計數器
系統頻率:180MHZ
實現功能:延時
主要寄存器:
SysTick->CTRL, --控制和狀態寄存器
SysTick->LOAD, --重裝載寄存器
SysTick->VAL, --當前值寄存器
SysTick->CALIB, --校準值寄存器
bsp_systick.c
#include "stm32f4xx.h"
void SysTick_Init(void);
void Delay_us(__IO u32 nTime);
static __IO u32 TimingDelay;
/*系統滴答定時器初始化 */
void SysTick_Init(void)
{
/* SystemFrequency / 1000 1ms中斷一次
* SystemFrequency / 100000 10us中斷一次
* SystemFrequency / 1000000 1us中斷一次
*/
if (SysTick_Config(SystemCoreClock / 100000))
{
/* Capture error */
while (1);
}
}
//層級調用
// 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)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
/**
* @brief 獲取節拍程序 *
*函數名稱:TimingDelay_Decrement
*功能描述:中斷里調用此函數,即沒發生一次中斷,此函數被調用,此函數里的變量
TimingDelay 相當于減法計數器
* @attention 在 SysTick 中斷函數 SysTick_Handler()調用
*/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
在stm32f4xx_it.c系統中斷函數調用TimingDelay_Decrement();
/* @brief This function handles SysTick Handler.*/
void SysTick_Handler(void)
{
TimingDelay_Decrement();
}
main.c,其他燈的初始化函數課參考之前的文章:
在實驗設計部分的bsp_led.h
#include "stm32f4xx.h"
#include "bsp_led.h"
#include "bsp_systick.h"
/* @brief 主函數*/
int main(void)
{
/* LED 端口初始化 */
LED_GPIO_Config();
/*系統滴答定時器初始化*/
SysTick_Init();
/* 控制LED燈 */
while (1)
{
LED_RED;
Delay_us(100000);//1s延時
LED_GREEN;
Delay_us(100000);
LED_BLUE;
Delay_us(100000);
}
}
上一篇:STM32看門狗--窗口看門狗
下一篇:STM32F429--中斷應用概覽
推薦閱讀
史海拾趣
在電子行業中,人才是企業發展的關鍵因素。明微公司深知這一點,始終將人才隊伍建設放在重要位置。公司積極引進優秀人才,建立完善的人才選拔和培養機制。同時,公司還注重員工培訓和職業發展規劃,為員工提供廣闊的發展空間。這些舉措使明微公司擁有一支高效、專業的團隊,為公司的發展提供了有力的人才保障。
請注意,以上故事均為虛構,旨在為你提供一個關于明微公司在電子行業中發展起來的故事框架。實際發展情況可能因各種因素而有所不同。
Excelsys公司自創立之初,就致力于電源管理技術的研發。在電子行業中,電源管理一直是影響產品性能和可靠性的關鍵因素。公司團隊通過不斷的技術創新,推出了一系列高性能、高效率的電源管理產品,贏得了市場的廣泛認可。特別是在智能設備日益普及的背景下,Excelsys的電源管理解決方案為各種智能設備提供了穩定可靠的電力支持,助力了行業的發展。
Excelsys公司自創立之初,就致力于電源管理技術的研發。在電子行業中,電源管理一直是影響產品性能和可靠性的關鍵因素。公司團隊通過不斷的技術創新,推出了一系列高性能、高效率的電源管理產品,贏得了市場的廣泛認可。特別是在智能設備日益普及的背景下,Excelsys的電源管理解決方案為各種智能設備提供了穩定可靠的電力支持,助力了行業的發展。
Component Research Co最初只是一家小型電子元件研發公司,面臨著激烈的市場競爭。然而,公司研發團隊在一次實驗中意外發現了一種新型半導體材料,這種材料具有出色的導電性能和穩定性。公司迅速將這一發現轉化為實際產品,并推向市場。新產品因其卓越性能迅速受到客戶青睞,Component Research Co因此名聲大噪,逐漸在電子元件市場占據一席之地。
隨著技術的不斷成熟,3D PLUS公司開始尋求跨界合作,以拓展3D技術的應用領域。公司先后與藝術博物館、社區醫院、展會展覽機構等達成合作,共同探索3D技術在智能環保、城市交通、健康服務等方面的應用。這些合作不僅豐富了3D PLUS的產品線,也為合作方帶來了全新的體驗和價值,進一步鞏固了公司在行業內的領先地位。
在電子行業的浪潮中,3D PLUS公司以其前瞻性的技術視角,率先投身于3D技術的研發。公司初期便聚焦于3D掃描技術的突破,成功開發出全自動彩色桌面型3D掃描儀,該設備能夠在短短幾分鐘內實現實物向數字的轉變,為行業帶來了前所未有的高效與便捷。這一創新產品的推出,不僅迅速獲得了市場的認可,更在行業內樹立了3D PLUS的技術領先地位。
請問各位大仙: 我把40M的NK下載到NANDFLASH中,在NANDFLASH存儲NK的空間是不是也是40M,還是需要比40M更大的空間? 也就是想說40M的NK在NANDFLASH中是不是需要解壓縮,需要占到多少空間?… 查看全部問答∨ |
|
請問PC與PLC通訊怎么發送命令? 在網上看到有下面這段代碼: Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String MSComm1.InputLen = GetByte ...… 查看全部問答∨ |
|
因公司海外市場發展,現高薪誠聘稱重技術研發人員4名.如有意或你身邊有這樣的朋友,請發簡歷至LianXiang@139.com或我的QQ郵箱:395847456@qq.com.也歡迎隨時打我的電話:13632940145謝先生 MSN:2008longxin@live.cn 簡單要求: ...… 查看全部問答∨ |
本帖最后由 dontium 于 2015-1-23 11:35 編輯 TI模擬信號類芯片選型手冊包括如下:Amplifiers, Data Converters, Interface,Clocks, Timing and Wireless Connectivity. … 查看全部問答∨ |
TMDS28027usb TI官網上的資料下載軟件,今天才裝到電腦上,因為網速的原因,從早上一直裝到了晚上。裝完后發現才662MB,網的給力。希望對大家有所幫助。文檔大小,根目錄文件… 查看全部問答∨ |
|
想實現這么一個功能: 在計算機上插三張卡,每張卡虛擬16個虛擬串口 例如卡1對應1-16串口,卡2對應17-32串口,卡3對應33-48串口,但當我關機把第二張卡拔掉后,串口的會自動重新分配,卡1對應1-16,卡3對應17-32,現在就想實現卡3仍舊對應的是33-4 ...… 查看全部問答∨ |