STM32F1 的定時器非常多,由 2 個基本定時器(TIM6、TIM7)、4 個通用定時器(TIM2-TIM5)和 2 個高級定時器(TIM1、TIM8)組成。
1、定時器有哪些,以及對應有什么功能
(1)基本定時器:
功能最為簡單,類似于 51 單片機內定時器。
(2)通用定時器:
是在基本定時器的基礎上擴展而來,增加了輸入捕獲(可以測量輸入信號的脈寬)與輸出比較(產生輸出波形)等功能。
(3)高級定時器:
是在通用定時器基礎上擴展而來,增加了可編程死區互補輸出、重復計數器、帶剎車(斷路)功能,這些功能主要針對工業電機控制方面。
2、通用定時器配置
#include "stm32f10x.h"
uint8_t time_flag = 0;
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定義結構體變量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //選擇你要設置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //設置推挽輸出模式
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//設置傳輸速率
GPIO_Init(GPIOC,&GPIO_InitStructure); /* 初始化GPIO */
GPIO_SetBits(GPIOC,GPIO_Pin_0); //將LED端口拉高,熄滅所有LED
}
void TIM4_Init(u16 per,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); //使能TIM4時鐘
TIM_TimeBaseInitStructure.TIM_Period=per; //自動裝載值
TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //分頻系數
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; //時鐘分頻
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //設置向上計數模式
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);
TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); //開啟定時器中斷
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //定時器中斷通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//搶占優先級
NVIC_InitStructure.NVIC_IRQChannelSubPriority =3; //子優先級
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure);
TIM_Cmd(TIM4,ENABLE); //使能定時器
}
// TIM4中斷函數
void TIM4_IRQHandler(void)
{
if(TIM_GetITStatus(TIM4,TIM_IT_Update))
{
if(time_flag){
time_flag = 0x00;
}
else{
time_flag = 0xff;
}
}
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
}
int main( void )
{
LED_Init();
TIM4_Init(1000,36000-1); //定時500ms
while(1)
{
if( time_flag ){
GPIO_ResetBits(GPIOC,GPIO_Pin_0);
}
else{
GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
}
}
3、測試驗證程序,下載到板子會看到LED閃爍,程序正常。
--END--
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
定時器
+關注
關注
23文章
3288瀏覽量
117272 -
stm32f1
+關注
關注
1文章
59瀏覽量
12443
發布評論請先 登錄
相關推薦
熱點推薦
STM32的通用定時器和高級定時器
STM32的通用定時器和高級定時器除了支持單向的向上或向下計數模式外,還支持中心對齊計數模式,即一個計數周期內分別由向上計數和向下計數兩個過程組成。在基于計數
發表于 08-11 08:51
STM32的通用定時器和高級定時器功能
比較之后,并依據相應的輸出模式從而實現各類輸出。如PWM輸出、電平翻轉、單脈沖模式、強制輸出等。一般來說,STM32的通用定時器和高級定時器都具有比較輸出功能,不同的
發表于 08-18 07:15
STM32 通用定時器 輸入捕獲 測量脈寬例程,并做了超時處理
STM32 通用定時器 輸入捕獲 測量脈寬例程,并做了超時處理,歡迎下載。1-該例程已經在霸道和指南者上驗證過 2-用的是TIM5的通道1,即PA0來測量高電平的時間,在霸道和指南者上,PA0接
發表于 12-05 15:00
?46次下載
STM32-通用定時器基本定時功能資料下載
電子發燒友網為你提供STM32-通用定時器基本定時功能資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫
發表于 04-12 08:44
?4次下載

評論