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

STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)

這篇具有很好參考價值的文章主要介紹了STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?? 專欄簡介:本專欄記錄了從零學(xué)習(xí)單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學(xué)習(xí)51單片機,其是STM32等高級單片機的基礎(chǔ);這樣再學(xué)習(xí)STM32時才能融會貫通。
?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機,且有一定C語言基礎(chǔ)的的童鞋。
??專欄目標(biāo):實現(xiàn)從零基礎(chǔ)入門51單片機和STM32單片機,力求在玩好單片機的同時,能夠了解一些計算機的基本概念,了解電路及其元器件的基本理論等。

?? 專欄主要內(nèi)容: 主要學(xué)習(xí)STM32單片機的功能、各個模塊、單片機的外設(shè)、驅(qū)動等,最終玩好單片機和單片機的外設(shè),全程手敲代碼,實現(xiàn)我們所要實現(xiàn)的功能。
?? 專欄說明 :如果文章知識點有錯誤的地方,歡迎大家隨時在文章下面評論,我會第一時間改正。讓我們一起學(xué)習(xí),一起進步。
??專欄主頁:http://t.csdn.cn/HCD8v

本學(xué)習(xí)過程參考:https://space.bilibili.com/383400717

STM3單片機安裝軟件、各種資料以及源碼的路徑:
鏈接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取碼:asdf

鏈接里壓縮包的解壓密碼:32

本大節(jié)主要學(xué)習(xí)TIM定時器的相關(guān)知識,包含八小節(jié):
第一小節(jié)主要學(xué)習(xí)定時器基本定時的功能,第二小節(jié)是對第一小節(jié)的內(nèi)容寫兩個程序進行練習(xí),分別是定時器定時中斷和定時器外部時鐘;
第三小節(jié)主要學(xué)習(xí)定時器輸出比較的功能,第四小節(jié)是對第三小節(jié)的內(nèi)容寫三個程序進行練習(xí),分別是PWM驅(qū)動LED呼吸燈、PWM驅(qū)動舵機以及PWM驅(qū)動直流電機;
第五小節(jié)主要學(xué)習(xí)定時器輸入捕獲的功能,第六小節(jié)是對第五小節(jié)的內(nèi)容寫兩個程序進行練習(xí),分別是輸入捕獲模式測頻率和PWMI模式測頻率占空比;
第七小節(jié)主要學(xué)習(xí)定時器的編碼器接口功能,第八小節(jié)是對第七小節(jié)的內(nèi)容寫一個程序進行練習(xí),即編碼器接口測速;
最終附上所有的源代碼;

本小節(jié)是對第一小節(jié)TIM定時中斷的內(nèi)容寫兩個程序進行練習(xí),分別是定時器定時中斷和定時器外部時鐘;并附上源碼;

一、本節(jié)目標(biāo)

目標(biāo):定時器定時中斷

定時器使用內(nèi)部時鐘定了一個1秒的時間,每隔1秒申請一下中斷,然后在中斷函數(shù)里執(zhí)行Num++;最后在OLED上顯示NUm;

現(xiàn)象是OLED上顯示一個數(shù)字Num,并且每秒鐘自動加1;如下圖所示:

STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)

二、示例:定時器定時中斷

2.1 接線圖

STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)

此接線圖和之前的OLED顯示屏的接線圖是一樣的,因為定時器和中斷系統(tǒng)的電路都在STM32內(nèi)部,定時中斷也是位我們程序設(shè)計提供服務(wù)的,所以芯片外面只插一個OLED顯示數(shù)據(jù)就行了;

硬件電路接線圖如下所示:

STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)

2.2 程序源碼

代碼路徑:

  • STM32入門教程資料\程序源碼\STM32Project\6-1 定時器定時中斷\User
  • STM32入門教程資料\程序源碼\STM32Project\6-1 定時器定時中斷\Hardware

具體代碼

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"

uint16_t Num;

int main(void)
{
	OLED_Init();
	Timer_Init();
	
	OLED_ShowString(1, 1, "Num:");
	
	while (1)
	{
		OLED_ShowNum(1, 5, Num, 5);
	}
}

void TIM2_IRQHandler(void)
{
	if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)//檢查中斷標(biāo)志位,檢查TIM_IT_Update是否更新
	{
		Num ++;
		TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
	}
}

Time.c

#include "stm32f10x.h"                  // Device header

void Timer_Init(void)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//開啟TIM2的時鐘函數(shù)
	
	TIM_InternalClockConfig(TIM2);//TIM2的時基單元由內(nèi)部時鐘控制
	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//1分頻模式
	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//計數(shù)器模式選擇為向上計數(shù)
	TIM_TimeBaseInitStructure.TIM_Period = 10000 - 1;//周期,ARR自動重裝器的值,
	TIM_TimeBaseInitStructure.TIM_Prescaler = 7200 - 1;//PSC預(yù)分頻器的值,
	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;//重復(fù)計數(shù)器的值,
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);//配置時基單元
	
	TIM_ClearFlag(TIM2, TIM_FLAG_Update);
	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//選擇中斷
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//NVIC優(yōu)先級分組
	
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_Init(&NVIC_InitStructure);//NVIC初始化
	
	TIM_Cmd(TIM2, ENABLE);//啟動定時器TIM2
}

/*
void TIM2_IRQHandler(void)
{
	if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
	{
		
		TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
	}
}
*/

代碼解釋:

代碼基本就是按照下圖一步步實現(xiàn):
STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)文章來源地址http://www.zghlxwxcb.cn/news/detail-488943.html

  • TIM_TimeBaseInit()函數(shù):配置初始化時基單元,第一個參數(shù)是選擇具體的定時器,第二個參數(shù)是配置時基單元的一些參數(shù)
  • RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//開啟TIM2的時鐘函數(shù)
  • TIM_InternalClockConfig(TIM2);//TIM2的時基單元由內(nèi)部時鐘控制
  • 代碼詳細解釋看注釋

到了這里,關(guān)于STM32單片機(六)TIM定時器 -> 第二節(jié):TIM定時中斷練習(xí)(定時器定時中斷和定時器外部時鐘)的文章就介紹完了。如果您還想了解更多內(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)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包