˜Ë(bi¨¡o)î}: STM32ÇóÖú£¬žéɶtim1¶¨•rÆ÷µÄÓ‹(j¨¬)”µ(sh¨´)Æ÷CNTÒ»Ö±ÊÇ0›]ÓÐ׃»¯£¿ [´òÓ¡±¾í“]

×÷Õß: S_bt    •rég: 2020-4-23 19:36
˜Ë(bi¨¡o)î}: STM32ÇóÖú£¬žéɶtim1¶¨•rÆ÷µÄÓ‹(j¨¬)”µ(sh¨´)Æ÷CNTÒ»Ö±ÊÇ0›]ÓÐ׃»¯£¿
ß@Êdzõʼ»¯µÄ´ú´a£¬ÓÐɶȱ©°¡£¿
void Tim1Init()
{
    //Reset TIM1 clock
    RCC->APB2RSTR.TIM1RST  = 1;
    //Enable TIM1 clock
    RCC->APB2ENR.TIM1EN    = 1;
   
    // Select the Counter Mode :Center-aligned mode (up/down counting)
    TIM1->CR1.CMS          = 3;
   
    // Set the clock division :No division
    TIM1->CR1.CKD          = 3;
    //Set the auto-reload preload :TIMx_ARR register is buffered
    TIM1->CR1.ARPE         = 1;
   
    //Set the Autoreload value :10000(Arr)
    TIM1->CNT.CNT          = 0;
    TIM1->ARR.ARR          = 10000;
    // Set the Prescaler value :7199 (CK_CNT = CK_PSC /( PSC[15:0]+1))
    TIM1->PSC.PSC          = 7199;
    // Set the Repetition Counter value :0,is no repetition
    TIM1->RCR.REP          = 0;
   
    //Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately :UG
    TIM1->EGR.UG           = 1;

    //ClockSourceConfig:internal clock-CK_INT
    //Reset the SMS, TS, ECE, ETPS and ETRF bits:0
    TIM1->SMCR.SMS        = 0;
    TIM1->SMCR.TS         = 0;
    TIM1->SMCR.ECE        = 0;
    TIM1->SMCR.ETPS       = 0;
    TIM1->SMCR.ETF        = 0;
    // Select the TRGO source and Set master mode :0
    TIM1->CR2.MMS         = 0;
    TIM1->SMCR.MSM        = 0;
   
    //Enable trigger:Update interrupt enable
    TIM1->DIER.TIE         = 1;
    TIM1->DIER.UIE         = 1;
   
    //Init TIM1 interrupt  
    //TIM1_UP_IRQn = 25,     /*!< TIM1 Update Interrupt
    //prioritygroup:4  PreemptPriority:1 SubPriority:0
    NVIC->IP[25]           = 0x40;
    //Enable interrupt IRQn  (uint32_t)(1UL << (((uint32_t)25) & 0x1FUL)) :ISER[0]'s 25 bits = 1;
    NVIC->ISER[0]          = 0x02000000;
   
    //Enable Counter
    TIM1->CR1.CEN          = 1;
   
}





šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1