<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32通用定時(shí)器TIMx

STM32通用定時(shí)器TIMx

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò ) 收藏
STM32計數器時(shí)鐘可由下列四種時(shí)鐘源提供:

(1)內部時(shí)鐘(CK_INT)

本文引用地址:http://dyxdggzs.com/article/201611/316145.htm

(2)外部時(shí)鐘模式1:外部輸入腳(TIx)

(3)外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR)

(4)內部觸發(fā)輸入(ITRx)

時(shí)鐘源(CK_INT)經(jīng)預分頻(PSC)后得到定時(shí)時(shí)鐘(CK_CNT),每個(gè)定時(shí)時(shí)鐘計數寄存器計數(可設向上/向下/中央對齊模式),計數寄存器計數至捕獲比較寄存器(CCR),則產(chǎn)生CC中斷;計數寄存器計數至預裝載值(ARR),則產(chǎn)生UPDATE中斷,并重裝預載值。

舉個(gè)例子:(以向上計數為例,每40us中斷一次)

  例程:
(省略RCC設置部分)


void TIM2_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);// for 36MHz


TIM_DeInit(TIM2);
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Period = 1200;// 預裝初值
TIM_TimeBaseStructure.TIM_Prescaler = 36-1;// 預分頻
TIM_TimeBaseStructure.TIM_ClockDivision = 0x00; // 時(shí)鐘分頻因子(用于ETR,TIX)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上計數
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; // 重復計數
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);


/*-------------------*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 40; //40us中斷一次
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM2, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Disable);

/*-------------------*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;
TIM_OCInitStructure.TIM_Pulse = 800;//PWM 800/1200
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM2, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Disable);

/*-------------------*/
//TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Gated);
//TIM_SelectInputTrigger(TIM2, TIM_TS_ITR0);

TIM_ARRPreloadConfig(TIM2, DISABLE);

TIM_ITConfig(TIM2, TIM_IT_CC1|TIM_IT_CC2|TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
}


/*--------------中斷程序-------------------*/
void TIM2_IRQHandler(void)
{

uint16_t capture = 0;

if(TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)

{

if((timer_cnt1++)>49)

{

timer_cnt1 = 0;

f_2ms = 1;

}

TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);

capture = TIM_GetCapture1(TIM2);

if(capture==1200)

TIM_SetCompare1(TIM2, 40);

else

TIM_SetCompare1(TIM2, capture + 40);

}

if(TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)

{

GPIO_SetBits(P_LCDBK, LCDBK);

}

if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)

GPIO_ResetBits(P_LCDBK, LCDBK);

TIM2->SR = 0x00;
}



關(guān)鍵詞: STM32通用定時(shí)器TIM

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>