|
請(qǐng)問下這段代碼,通用定時(shí)器2,設(shè)置中心對(duì)齊PWM模式1,我設(shè)置ARR寄存器為10*1000,分頻系數(shù)為5*1000,為什么出來的方波周期卻是2S的?
/*系統(tǒng)時(shí)鐘頻率為50MHZ*/
RCC->CFGR |= 4 << 10;
RCC->APB1ENR |= 1;/*使能TIM2時(shí)鐘*/
TIM2->CR1 = 0;
TIM2->CR1 |= 1 << 7;/*ARPE,開啟預(yù)裝載寄存器緩沖*/
TIM2->CR1 |= (0x01 << 5);/*CMS: Center-aligned mode selection set to 01: Center-aligned mode 1 the counter counts down.*/
/*計(jì)數(shù)器50MHZ == 每秒50 * 1000 * 1000次,分頻系數(shù)為5000(從0開始所以要減一),故每秒10 * 1000等于一萬次*/
TIM2->ARR = 10000;/*預(yù)裝載寄存器*/
TIM2->DIER |= 1;//使能更新中斷
TIM2->PSC = 5000 - 1;/*設(shè)置定時(shí)器分頻系數(shù)*/
TIM2->CCMR1 = 0;
TIM2->CCMR1 |= 1 << 3;/*OC1PE使能preload register*/
TIM2->CCMR1 |= 6 << 4;/*OC1M Output compare 1 mode set to PWM mode 1*/
TIM2->CCMR1 &= ~0x3;/*CC1 channel is configured as output*/
TIM2->CCR1 = 2500;/*產(chǎn)生一個(gè)占空比為百分之25(2500 / 10000)的PWM波*/
TIM2->CCER = 0;
TIM2->CCER |= 1;/*CC1E: Capture/Compare 1 output enable*/
TIM2->CR1 |= 1; /*使能定時(shí)器*/
TIM2->EGR |= 1;/*產(chǎn)生UG更新事件*/
TIM2->SR &= ~((u32)1);
/*PA15-->TIM2_CH1配置*/
RCC->AHB1ENR |= 1;/*使能GPIOA時(shí)鐘源*/
/*初始化GPIOA的IO口配置*/
/*PA0為輸出(系統(tǒng)默認(rèn)推挽就不配置了)*/
GPIOA->MODER |= ((u32)2 << 2 * 15);/*PA15配置為復(fù)用*/
GPIOA->AFR[1] = 0;
GPIOA->AFR[1] = 1 << 4 * 7;//AFRH15 AF1
圖中每個(gè)格子為1S
174926s926ozt4y29c1oo5.jpg (19.67 KB, 下載次數(shù): 29)
下載附件
2021-8-26 09:59 上傳
|
|