<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32開(kāi)發(fā)板學(xué)習(xí)日記-[3] TIM定時(shí)器輸出比較

          STM32開(kāi)發(fā)板學(xué)習(xí)日記-[3] TIM定時(shí)器輸出比較

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏

          void RCC_Configuration(void)
          {

          RCC_DeInit();

          本文引用地址:http://www.ex-cimer.com/article/201611/321633.htm


          RCC_HSEConfig(RCC_HSE_ON);


          HSEStartUpStatus = RCC_WaitForHSEStartUp();

          if(HSEStartUpStatus == SUCCESS)
          {

          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


          FLASH_SetLatency(FLASH_Latency_2);


          RCC_HCLKConfig(RCC_SYSCLK_Div1);


          RCC_PCLK2Config(RCC_HCLK_Div1);


          RCC_PCLK1Config(RCC_HCLK_Div4);


          RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);


          RCC_PLLCmd(ENABLE);


          while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
          {
          }


          RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);


          while(RCC_GetSYSCLKSource() != 0x08)
          {
          }
          }


          RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);


          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
          }


          void GPIO_Configuration(void)
          {
          GPIO_InitTypeDef GPIO_InitStructure;


          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

          GPIO_Init(GPIOA, &GPIO_InitStructure);
          }


          void NVIC_Configuration(void)
          {
          NVIC_InitTypeDef NVIC_InitStructure;

          #ifdefVECT_TAB_RAM

          NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
          #else

          NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
          #endif


          NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
          }

          #ifdefDEBUG

          void assert_failed(u8* file, u32 line)
          {

          while (1)
          {
          }
          }
          #endif

          中斷服務(wù):



          void TIM2_IRQHandler(void)
          {

          if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)//檢查指定的TIM中斷發(fā)生與否
          {
          TIM_ClearITPendingBit(TIM2, TIM_IT_CC1 );//清除TIMx的中斷待處理位
          capture = TIM_GetCapture1(TIM2);
          TIM_SetCompare1(TIM2, capture + CCR1_Val );//設(shè)置TIMx自動(dòng)重裝載寄存器值
          //將TIM2_CC1的值增加CCR1_Val,使得下一個(gè)TIM事件也需要CCR1_Val個(gè)脈沖,

          }


          if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)
          {
          TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
          capture = TIM_GetCapture2(TIM2);
          TIM_SetCompare2(TIM2, capture + CCR2_Val);
          }


          if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET)
          {
          TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);
          capture = TIM_GetCapture3(TIM2);
          TIM_SetCompare3(TIM2, capture + CCR3_Val);
          }


          if (TIM_GetITStatus(TIM2, TIM_IT_CC4) != RESET)
          {
          TIM_ClearITPendingBit(TIM2, TIM_IT_CC4);
          capture = TIM_GetCapture4(TIM2);
          TIM_SetCompare4(TIM2, capture + CCR4_Val);
          }
          }


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();