TIM(Timer)定時器
定時器可以對輸入的時鐘進行計數(shù),并在計數(shù)值達到設定值時觸發(fā)中斷
16位計數(shù)器、預分頻器、自動重裝寄存器的時基單元,在72MHz計數(shù)時鐘下可以實現(xiàn)最大59.65s的定時
不僅具備基本的定時中斷功能,而且還包含內外時鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)模式等多種功能。
根據(jù)復雜度和應用場景分為了高級定時器、通用定時器、基本定時器三種類型
定時器類型
高級、通用、基本定時器
定時器初始化函數(shù)
#include "stm32f10x.h" // Device header
//初始化定時器
void Timer_Init(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//開啟時鐘
TIM_InternalClockConfig(TIM2);//選擇內部時鐘,默認內部時鐘,可以不寫
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//初始化時機單元
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//一分頻
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計數(shù);有三種
TIM_TimeBaseInitStructure.TIM_Period = 10000 - 1;//
TIM_TimeBaseInitStructure.TIM_Prescaler = 7200 - 1;
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//開啟更新中斷
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
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;//中斷優(yōu)先級
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM2, ENABLE);
}
//void TIM2_IRQHandler(void)
//{
// if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)//中斷標志位
// {
//
// TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
// }
//}
主函數(shù)
#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)
{
Num ++;
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
}
輸出比較功能(智能車、機器人等)
OC(Output Compare)輸出比較
輸出比較可以通過比較CNT與CCR寄存器值的關系,來對輸出電平進行置1、置0或翻轉的操作,用于輸出一定頻率和占空比的PWM波形
每個高級定時器和通用定時器都擁有4個輸出比較通道
高級定時器的前3個通道額外擁有死區(qū)生成和互補輸出的功能
直流電機是一種將電能轉換為機械能的裝置,有兩個電極,當電極正接時,電機正轉,當電極反接時,電機反轉
直流電機屬于大功率器件,GPIO口無法直接驅動,需要配合電機驅動電路來操作
TB6612是一款雙路H橋型的直流電機驅動芯片,可以驅動兩個直流電機并且控制其轉速和方向文章來源:http://www.zghlxwxcb.cn/news/detail-686224.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-686224.html
到了這里,關于【STM32】學習筆記(TIM定時器)-江科大的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!