0
我想在STM32F103C8T6上使用TIM6來生成時間和閃爍的LED,但計時器沒有看到工作,還有什麼其他參數需要初始化以便能夠使用定時器?代碼如下?TIM6,基本時間生成功能不工作
#include "stm32f10x.h"
int main(void)
{
RCC->APB1ENR |= 0x00000010 ; // CLOCK SIGNAL TO BASIC TIMER 6 IS INITIALIZED
RCC->APB2ENR |= 0x00000004 ; //CLOCK SIGNAL TO GPIO PORT A IS INITIALIZED
GPIOA->CRL |= 0x33333333 ; // LOWER PINS OF GPIO PORT A ARE DEFINED AS PUSH AND PULL OUTPUT
TIM6->CR1 |= 0x0081 ; // COUNTER AND AUTO RELOAD BUFFER ENABLED
TIM6->PSC |= 0x1F40 ; // PRESCALER SET AS 8000
TIM6->ARR |= 0x05DC ; // AUTO RELOAD REGISTER SET AT 1000
while(1)
{
if (TIM6->CNT == 1000)
{
GPIOA->BSRR |= 0X0044 ; //SET PINS 2 AND 6 OF GPIOA TO HIGH
}
if (TIM6->CNT == 0x05DC)
{
GPIOA->BRR |= 0X0044 ; //SET PINS 2 AND 6 OF GPIOA TO HIGH
}
}
}
測試與計時器值的相等性是一個壞主意。使用'> ='比較。除非定時器運行非常緩慢,否則當定時器處於精確值時進行比較的可能性很小。 –
我剛剛糾正,但它仍然無法工作..... –
你能看到定時器的寄存器在調試器,斷點,看看定時器是否正在計數。這會告訴你它是否被正確初始化。 –