新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于stm32的定時器主從模式概念

關于stm32的定時器主從模式概念

作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏
STM32的每個定時器都可以由另一個定時器觸發(fā)啟動定時器一般是通過軟件設置而啟動,STM32的每個定時器也可以通過外部信號觸發(fā)而啟動,還可以通過另外一個定時器的某一個條件被觸發(fā)而啟動.這里所謂某一個條件可以是定時到時、定時器超時、比較成功等許多條件.這種通過一個定時器觸發(fā)另一個定時器的工作方式稱為定時器的同步,發(fā)出觸發(fā)信號的定時器工作于主模式,接受觸發(fā)信號而啟動的定時器工作于從模式

以下程序是從官方的修改而來
修改為寄存器版(主定時器:TIM2;從定時器:TIM3,省略了TIM4):

本文引用地址:http://butianyuan.cn/article/201611/324055.htm

/*從模式:TIM2主模式,TIM3從模式*/

void TIM_Parallel_Synchro(void)

{

/* System Clocks Configuration */

RCC->APB2ENR|=1<<2; //使能PORTA時鐘

RCC->APB1ENR|=1<<0; //TIM2時鐘使能

RCC->APB1ENR|=1<<1; //TIM3時鐘使能

/* GPIO Configuration */

GPIOA->CRL&=0XFFFFFFF0;//PA0輸出

GPIOA->CRL|=0X0000000B;//50Hz,復用功能輸出

GPIOA->ODR|=1<<0; //PA0上拉

GPIOA->CRL&=0XF0FFFFFF;//PA6輸出

GPIOA->CRL|=0X0B000000;//50Hz,復用功能輸出

GPIOA->ODR|=1<<6; //PA6上拉

/* Timebaseconfiguration */

TIM2->ARR=255;//設定計數(shù)器自動重裝值

TIM2->PSC=0 ;//預分頻器分頻

TIM2->CR1 &=~(3<<8);// 選擇時鐘分頻

TIM2->CR1 &=~(3<<5);// 選擇計數(shù)模

TIM3->ARR=9; //設定計數(shù)器自動重裝值

TIM3->PSC=0 ;//預分頻器分頻

TIM3->CR1 &=~(3<<8);// 選擇時鐘分頻

TIM3->CR1 &=~(3<<5);// 選擇計數(shù)模式

/* Master Configuration in PWM1 Mode */

TIM2->CCMR1|=6<<4; //輸出比較模式

TIM2->CCER |=1<<0; //OC1 輸出使能

TIM2->CCR1 =64; //捕獲比較寄存器(占空比)

TIM2->CCER &=~(1<<1); //OC1 輸出極性

/* Select the Master Slave Mode */

TIM2->SMCR|=1<<7;//選擇主從模式

/* Master Mode selection */

TIM2->CR2 |=2<<4;// 主模式選擇

/* Slaves Configuration: PWM1 Mode */

TIM3->CCMR1|=6<<4; //輸出比較模式

TIM3->CCER |=1<<0; //OC1 輸出使能

TIM3->CCR1 =3; //捕獲比較寄存器(占空比)

TIM3->CCER &=~(1<<1); //OC1 輸出極性

/* Slave Mode selection: TIM3 */

TIM3->SMCR|=5<<0;//從模式選擇

TIM3->SMCR|=1<<4;//觸發(fā)選擇

/* TIM enable counter */

TIM3->CR1|=0x01; //CEN=1,使能定時器

TIM2->CR1|=0x01; //CEN=1,使能定時器

}
仿真結果:

但是仿真結果并不是庫函數(shù)注釋中描述的那樣

The TIMxCLK is fixed to 72 MHz, the TIM2 counter clock is 72 MHz.
The Master Timer TIM2 is running at 281.250 KHz and the duty cycle is equal to 25%
The TIM3 is running:
- At (TIM2 frequency)/ (TIM3 period + 1) = 28.125 KHz and a duty cycle
equal to TIM3_CCR1/(TIM3_ARR + 1) = 30%

如果修改:TIM3->SMCR|=5<<0;//從模式選擇

為:TIM3->SMCR|=7<<0;//從模式選擇

仿真結果與庫函數(shù)描述相同。



評論


技術專區(qū)

關閉