<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學(xué)習(xí)筆記——系統(tǒng)定時(shí)器SysTick的使用

          STM32學(xué)習(xí)筆記——系統(tǒng)定時(shí)器SysTick的使用

          作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
          //Cortex系統(tǒng)定時(shí)器SysTick提供1個(gè)24位、降序、零約束、寫(xiě)清除的計(jì)數(shù)器,具有靈活的控制機(jī)制

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

          #include"stm32f10x_lib.h"

          GPIO_InitTypeDefGPIO_InitStructure;//定義用于初始化配置GPIO的結(jié)構(gòu)體變量

          staticvu32TimingDelay;//定義為volatile類(lèi)型

          ErrorStatusHSEStartUpStatus;//定義枚舉類(lèi)型的錯(cuò)誤狀態(tài)

          voidTimingDelay_Decrement(void);

          voidRCC_Configuration(void);

          voidNVIC_Configuration(void);

          voidDelay(vu32nTime);

          intmain(void)

          {

          #ifdefDEBUG

          debug();

          #endif

          RCC_Configuration();//系統(tǒng)時(shí)鐘配置

          NVIC_Configuration();//NVIC配置

          //系統(tǒng)默認(rèn)SysTick是8分頻(HCLK/8)當(dāng)前系統(tǒng)時(shí)鐘72M的話(huà)72/8=9MHZ

          SysTick_SetReload(9000);//如果設(shè)置9000時(shí),計(jì)數(shù)到9000時(shí),產(chǎn)生1MS中斷

          //該函數(shù)設(shè)置SysTick的重裝載值,因?yàn)槭且粋€(gè)24位的計(jì)數(shù)器,所以重裝載值必須在1到0x00ffffff之間

          //開(kāi)啟SysTick中斷

          SysTick_ITConfig(ENABLE);//使能或者失能SysTick中斷,參數(shù)取值有ENABEL或DISABEL

          //開(kāi)啟GPIOB端口使能APB2

          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;//選中第6,7,8,9腳

          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//GPIO速度為50MHz

          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//設(shè)為推挽輸出模式

          GPIO_Init(GPIOB,&GPIO_InitStructure);//用配置好的結(jié)構(gòu)體初始化PB口

          GPIO_Write(GPIOB,GPIO_Pin_6|GPIO_Pin_8);//向GPIOB的6,8腳寫(xiě)數(shù)據(jù)

          while(1)

          {

          GPIO_Write(GPIOB,(u16)~GPIO_ReadOutputData(GPIOB));//GPIOB口狀態(tài)取反

          Delay(500);//延時(shí)500MS

          GPIO_Write(GPIOB,(u16)~GPIO_ReadOutputData(GPIOB));

          Delay(500);//延時(shí)500MS

          }

          }

          voidRCC_Configuration(void)

          {

          //復(fù)位RCC外部設(shè)備寄存器到默認(rèn)值

          RCC_DeInit();

          //打開(kāi)外部高速晶振

          RCC_HSEConfig(RCC_HSE_ON);

          //等待外部高速時(shí)鐘準(zhǔn)備好

          HSEStartUpStatus=RCC_WaitForHSEStartUp();

          //外部高速時(shí)鐘已經(jīng)準(zhǔn)別好

          if(HSEStartUpStatus==SUCCESS)

          {

          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

          FLASH_SetLatency(FLASH_Latency_2);

          //配置AHB(HCLK)時(shí)鐘=SYSCLK

          RCC_HCLKConfig(RCC_SYSCLK_Div1);

          //配置APB2(PCLK2)鐘=AHB時(shí)鐘

          RCC_PCLK2Config(RCC_HCLK_Div1);

          //配置APB1(PCLK1)鐘=AHB1/2時(shí)鐘

          RCC_PCLK1Config(RCC_HCLK_Div2);

          //配置ADC時(shí)鐘=PCLK21/4

          RCC_ADCCLKConfig(RCC_PCLK2_Div4);

          //配置PLL時(shí)鐘==外部高速晶體時(shí)鐘*9

          RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLL頻率為8*9=72MHz


          上一頁(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); })();