国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32基本定時器中斷

這篇具有很好參考價值的文章主要介紹了STM32基本定時器中斷。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

提示:這里可以添加本文要記錄的大概內(nèi)容:

定時器有什么用?精準(zhǔn)延時,PWM,做一個時鐘:年月日,時分秒。時鐘最基本的就是1s怎么來?


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、STM32定時器的結(jié)構(gòu)?

1. 51定時器的結(jié)構(gòu)

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

1.1如何實現(xiàn)定時1s的功能?

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

  1. 選定時功能
  2. 裝初值
  3. 配置定時器中斷
  4. 中斷里面計數(shù),計數(shù)多少次根據(jù)定時的需要

2. stm32定時器的結(jié)構(gòu)

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

2.1 通用定時器

部分芯片時沒有基本定時器的

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件
有基本定時器的型號
STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

  1. 時鐘來源RCC
  2. 控制器,應(yīng)該是要使能
  3. 分頻器
  4. 裝計數(shù)初值
  5. 中斷

二、使用步驟

1.開啟時鐘

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

代碼如下(示例):

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);

2.初始化定時器

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件
STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

代碼如下(示例):

//TIM_TimeBaseInitStruct.TIM_ClockDivision=
TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period=50000-1;
TIM_TimeBaseInitStruct.TIM_Prescaler= 72-1;
//TIM_TimeBaseInitStruct.TIM_RepetitionCounter=

TIM_TimeBaseInit(TIM6, &TIM_TimeBaseInitStruct);

3.中斷配置(分組、優(yōu)先級)

3.1 配置中斷源

timer6只有溢出中斷
STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

	TIM_ITConfig( TIM6, TIM_IT_Update, ENABLE);

3.2配置中斷優(yōu)先級

	NVIC_InitStruct.NVIC_IRQChannel=TIM6_IRQn;
	NVIC_InitStruct.NVIC_IRQChannelCmd= ENABLE;
	NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;   //0-3
	NVIC_InitStruct.NVIC_IRQChannelSubPriority=  1;        //0-3
	NVIC_Init(&NVIC_InitStruct);

3.3 開啟定時器

出了GPIO今后每個外設(shè)都要單獨開啟

	TIM_Cmd( TIM6, ENABLE);      //使能

3.4 中斷服務(wù)函數(shù)

在啟動文件找到中斷向量表,然后完成中斷服務(wù)函數(shù)

void TIM6_IRQHandler()
{

	if(TIM_GetITStatus( TIM6, TIM_IT_Update))
		
	{
	
	    TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
		num++;
		if(num==20)
		{
		   num=0;
			//led取反
		
		}
	}
}

3.5判斷中斷源, 清除中斷源

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

三、參考初始化函數(shù)

3.1寫成外設(shè)初始化函數(shù),方便main函數(shù)調(diào)用

void timer6()
{

	/*
	
	1.開啟APB1時鐘   72MHz
	2.配置定時器6    TimeInit()  72預(yù)分配,0-65535     1000000us/50000us =CNT=20         定時時間/中斷溢出時間=計數(shù)值
	3.中斷配置       分組,優(yōu)先級 。開啟中斷源
	4.中斷服務(wù)函數(shù)   計數(shù)值, 1us  ,計數(shù)20次后讓一個LED取反
	*/
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
	
	//TIM_TimeBaseInitStruct.TIM_ClockDivision=
	TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
	TIM_TimeBaseInitStruct.TIM_Period=50000-1;
	TIM_TimeBaseInitStruct.TIM_Prescaler= 72-1;
	//TIM_TimeBaseInitStruct.TIM_RepetitionCounter=
	
	TIM_TimeBaseInit(TIM6, &TIM_TimeBaseInitStruct);
	//開啟中斷:
	TIM_ITConfig( TIM6, TIM_IT_Update, ENABLE);
	
	TIM_Cmd( TIM6, ENABLE);      //使能
	
	NVIC_InitStruct.NVIC_IRQChannel=TIM6_IRQn;
	NVIC_InitStruct.NVIC_IRQChannelCmd= ENABLE;
	NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;   //0-3
	NVIC_InitStruct.NVIC_IRQChannelSubPriority=  1;        //0-3
	NVIC_Init(&NVIC_InitStruct);
	
	
}

3.2中斷函數(shù)

void TIM6_IRQHandler()
{

	if(TIM_GetITStatus( TIM6, TIM_IT_Update))
		
	{
	
	    TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
		num++;
		if(num==20)
		{
		   num=0;
			//led取反
		
		}
	}
}

3.3 中斷服務(wù)函數(shù)加入時分秒

void TIM6_IRQHandler()
{

	if(TIM_GetITStatus( TIM6, TIM_IT_Update))
		
	{
	
	    TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
		num++;
		if(num==20)
		{
		   num=0;
			//led取反
			GPIOA->ODR^=0x0100;         
			//   異或,相同為0,不同為1 
			//拿0 去異或,原來是0,還是0;原來是1,還是1。既可以保持不變
			//拿1 去異或,原來是0,變成1;原來是0,變成1。起到取反的作用
			second++;
			one_second_flag=1;
			if(second==60)
			{
				second=0;
				minute++;
				if(minute==60)
				{
					minute=0;
					hour++;
					if(hour==24)
					{
						hour=0;
					}
				}
			}
		
		}
	}
}

四、測試驗證

在中斷服務(wù)函數(shù)設(shè)定斷點

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

4.1時鐘使能查看

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

4.2 更新中斷狀態(tài)位

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件
STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

4.3 其他狀態(tài)和配置

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

五、拓展

串口: 時鐘

  1. 通過串口獲取時分秒
  2. 通過串口修改時間

STM32基本定時器中斷,STM32 學(xué)習(xí)教程,stm32,單片機,嵌入式硬件

總結(jié)

深入淺出,從51單片機定時結(jié)構(gòu)到stm32定時結(jié)構(gòu)引導(dǎo)講解了,STM32如何實現(xiàn)定時1s的原理,并工程實現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-734637.html

到了這里,關(guān)于STM32基本定時器中斷的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【學(xué)習(xí)記錄】STM32利用定時器中斷實現(xiàn)定時閃爍指示燈

    【學(xué)習(xí)記錄】STM32利用定時器中斷實現(xiàn)定時閃爍指示燈

    任務(wù):定時閃爍指示燈 任務(wù)目標(biāo): 掌握 CubeMX 軟件配置定時器實現(xiàn)定時功能的方法。 任務(wù)內(nèi)容: 控制開發(fā)板上的指示燈LED每隔1s閃爍。 任務(wù)實現(xiàn): 使用的STM32芯片是STM32F407ZET6 第一步:設(shè)置高速時鐘,設(shè)置LED 第二步:配置TIM10時鐘為100MHz,故可以設(shè)置預(yù)分頻系數(shù)PSC為9999,自

    2024年02月05日
    瀏覽(26)
  • 江科大stm32視頻學(xué)習(xí)筆記——TIM定時中斷&定時器外部時鐘

    江科大stm32視頻學(xué)習(xí)筆記——TIM定時中斷&定時器外部時鐘

    目錄 一、TIM(Timer)定時器簡介 ?1.1 定時器類型 摘要 1.1.1 基本定時器 1.1.2 通用定時器 1.1.3 高級定時器? 1.2 定時中斷基本結(jié)構(gòu) 1.2.1 結(jié)構(gòu)框圖 1.2.2 時序圖 二、定時器定時中斷定時器外部時鐘 2.1 內(nèi)部時鐘鬧鐘代碼 2.1.1 Timer.c 2.1.2 Buzzer.c加入間隔發(fā)聲函數(shù) 2.1.3 main.c 2.1.4 實驗視頻

    2024年01月23日
    瀏覽(55)
  • 基于STM32CubeMX和keil采用STM32F407的基本定時器中斷實現(xiàn)LED閃爍

    基于STM32CubeMX和keil采用STM32F407的基本定時器中斷實現(xiàn)LED閃爍

    定時器有三種,基本定時器,通用定時器,以及高級定時器。 這篇博客以最簡單的基本定時器為例,實現(xiàn)LED的閃爍。 后面兩種定時器的用法后面再寫。 實現(xiàn)功能: TIM6控制LED每隔0.5s變一次狀態(tài)。 TIM7控制LED1常量2s后熄滅。 因為都是用到LED,所以和上一篇基于STM32CubeMX與keil采

    2024年02月04日
    瀏覽(25)
  • STM32 學(xué)習(xí)筆記(六)定時器中斷:內(nèi)部時鐘模式,外部時鐘模式

    STM32 學(xué)習(xí)筆記(六)定時器中斷:內(nèi)部時鐘模式,外部時鐘模式

    定時器是功能最強大,內(nèi)容最復(fù)雜的32結(jié)構(gòu)。 之前51用過的功能,定時產(chǎn)生中斷。 輸出比較,常用于產(chǎn)生 PWM 波形,驅(qū)動電機等。 輸入捕獲,測量方波頻率。 編碼器,讀取正交編碼器的波形。 最大定時時間:72M/65536/65536=中斷頻率,中斷頻率取倒數(shù)是最大定時時間。 定時器可

    2024年02月08日
    瀏覽(24)
  • STM32學(xué)習(xí)筆記(四)丨TIM定時器及其應(yīng)用(定時中斷、內(nèi)外時鐘源選擇)

    STM32學(xué)習(xí)筆記(四)丨TIM定時器及其應(yīng)用(定時中斷、內(nèi)外時鐘源選擇)

    ???本次課程采用單片機型號為STM32F103C8T6。 ???課程鏈接:江科大自化協(xié) STM32入門教程 ??往期筆記鏈接: ??STM32學(xué)習(xí)筆記(一)丨建立工程丨GPIO 通用輸入輸出 ??STM32學(xué)習(xí)筆記(二)丨STM32程序調(diào)試丨OLED的使用 ??STM32學(xué)習(xí)筆記(三)丨中斷系統(tǒng)丨EXTI外部中斷

    2023年04月13日
    瀏覽(21)
  • STM32 F103C8T6學(xué)習(xí)筆記4:時鐘樹、滴答計時器、定時器定時中斷

    STM32 F103C8T6學(xué)習(xí)筆記4:時鐘樹、滴答計時器、定時器定時中斷

    今日理解一下STM32F103 C8T6的時鐘與時鐘系統(tǒng)、滴答計時器、定時器計時中斷的配置,文章提供原理,代碼,測試工程下載。 目錄 時鐘樹與時鐘系統(tǒng): 滴答計時器: 定時器計時中斷: 測試結(jié)果: 測試工程下載: 該系統(tǒng)介紹在 STM32F10x-中文參考手冊 P56頁開始 微控制器的時鐘系

    2024年02月13日
    瀏覽(32)
  • STM-32:TIM定時中斷—定時器定時中斷/定時器外部時鐘

    STM-32:TIM定時中斷—定時器定時中斷/定時器外部時鐘

    定時器可以對輸入的時鐘進行計數(shù),并在達到設(shè)定值時觸發(fā)中斷 16位計數(shù)器、預(yù)分頻器、自動重裝寄存器的時基單元,在72MHz計數(shù)時鐘下可以實現(xiàn)最大59.65s的定時 不僅具備基本的定時中斷功能,而且還包含內(nèi)外時鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)模式等

    2024年02月09日
    瀏覽(28)
  • STM32——定時器——定時中斷

    STM32——定時器——定時中斷

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 本節(jié)先只講解定時器的定時中斷,內(nèi)外中斷源選擇。 TIM(Timer)定時器 定時器可以 對輸入的時鐘進行計數(shù) ,并在計數(shù)值達到設(shè)定值時觸發(fā)中斷。 16位計數(shù)器、預(yù)分頻器、自動重裝寄存器的時基單元 ,

    2024年04月10日
    瀏覽(20)
  • STM32定時器-定時器中斷功能詳解

    STM32定時器-定時器中斷功能詳解

    STM32的眾多定時器中我們使用最多的是高級定時器和通用定時器,而高級定時器一般也是用作通用定時器的功能,下面我們就以通用定時器為例進行講解,其功能和特點包括: 通用與基本定時器(2~7)位于低速的APB1總線上 高級定時器(1、8)位于高速的APB2總線上 自動裝載計

    2024年02月08日
    瀏覽(108)
  • 正點原子--STM32基本定時器學(xué)習(xí)筆記(1)

    正點原子--STM32基本定時器學(xué)習(xí)筆記(1)

    目錄 1. 定時器概述 1.1 軟件定時原理 1.2 定時器定時原理 1.3 定時器分類 1.4 定時器特性表 1.5 基本、通用、高級定時器的功能整體區(qū)別 2. 基本定時器簡介 3. 基本定時器框圖 時鐘樹分析 這部分是筆者對基本定時器的理論知識進行學(xué)習(xí)與總結(jié)!主要記錄學(xué)習(xí)過程中遇到的重難點

    2024年02月19日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包