在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32F103的復(fù)位及時(shí)鐘控制模塊頭文件

            STM32F103的復(fù)位及時(shí)鐘控制模塊頭文件

            作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
            在處理器正常工作前,肯定要做一些初始化工作,其中最主要的一個(gè)就是初始化各種時(shí)鐘。通過對(duì)STM32F103復(fù)位及時(shí)鐘控制(RCC)模塊分析之后,自己寫了一個(gè)RCC的頭文件,這樣使用起來更方便。頭文件中首先定義了最基本的幾個(gè)寄存器,然后再對(duì)每個(gè)寄存器中的域使用結(jié)構(gòu)體做了定義,可以直接使用寄存器中的位來操作。注意設(shè)置系統(tǒng)時(shí)鐘時(shí)要先設(shè)置好FLASH的等待周期,不然程序就可能會(huì)跑飛。
            該測(cè)試工程是在以前的GPIO實(shí)驗(yàn)的基礎(chǔ)上增加系統(tǒng)時(shí)鐘初始化代碼,設(shè)置系統(tǒng)時(shí)鐘為72M。通過流水燈可以看到,比未配置系統(tǒng)時(shí)鐘之前(8M)流水燈的速度快了很多。
            從這里下載完整的測(cè)試工程:
            系統(tǒng)時(shí)鐘初始化的代碼如下:
            //以下時(shí)鐘配置為最高性能
            void SystemClockInit(void)
            {
            //設(shè)置flash等待周期為2,否則設(shè)置為72M系統(tǒng)時(shí)鐘時(shí)就會(huì)跑飛
            FLASH_ACR=0x32;
            pbRCC_CR->HSEON=1; //使能外部高速時(shí)鐘
            while(!(pbRCC_CR->HSERDY)); //等待外部高速時(shí)鐘穩(wěn)定
            pbRCC_CFGR->MCO=0; //MCO無時(shí)鐘輸出
            pbRCC_CFGR->USBPRE=1; //USB時(shí)鐘1.5分頻
            pbRCC_CFGR->PLLMUL=9-2; //PLL倍頻設(shè)置為9倍(外部時(shí)鐘8M,PLL輸出72M)
            pbRCC_CFGR->PLLXTPRE=0; //HSE不分頻
            pbRCC_CFGR->PLLSRC=1; //HSE選作做為PLL時(shí)鐘源輸入
            pbRCC_CFGR->ADCPRE=0; //ADC時(shí)鐘2分頻
            pbRCC_CFGR->PPRE2=1+6; //APB2設(shè)置為1分頻
            pbRCC_CFGR->PPRE1=2+6; //APB1設(shè)置為2分頻
            pbRCC_CFGR->HPRE=0; //AHB無分頻
            pbRCC_CR->PLLON=1; //啟動(dòng)PLL
            while(!(pbRCC_CR->PLLRDY)); //等待PLL穩(wěn)定
            pbRCC_CFGR->SW=2; //選擇PLL輸出為時(shí)鐘源
            //pbRCC_AHBENR->SRAMEN=1;
            //pbRCC_AHBENR->FLITFEN=1;
            //IO口第二功能時(shí)鐘使能
            pbRCC_APB2ENR->AFIOEN=1;
            //各通用IO口時(shí)鐘使能
            pbRCC_APB2ENR->IOPAEN=1;
            pbRCC_APB2ENR->IOPBEN=1;
            pbRCC_APB2ENR->IOPCEN=1;
            pbRCC_APB2ENR->IOPDEN=1;
            pbRCC_APB2ENR->IOPEEN=1;
            //ADC時(shí)鐘使能
            pbRCC_APB2ENR->ADC1EN=1;
            pbRCC_APB2ENR->ADC2EN=1;
            //定時(shí)器1時(shí)鐘使能
            pbRCC_APB2ENR->TIM1EN=1;
            //SPI1時(shí)鐘使能
            pbRCC_APB2ENR->SPI1EN=1;
            //串口1時(shí)鐘使能
            pbRCC_APB2ENR->USART1EN=1;
            //定時(shí)器2、3、4時(shí)鐘使能
            pbRCC_APB1ENR->TIM2EN=1;
            pbRCC_APB1ENR->TIM3EN=1;
            pbRCC_APB1ENR->TIM4EN=1;
            //窗口看門狗時(shí)鐘不使能
            pbRCC_APB1ENR->WWDGEN=0;
            //SPI2時(shí)鐘使能
            pbRCC_APB1ENR->SPI2EN=1;
            //串口2、3時(shí)鐘使能
            pbRCC_APB1ENR->USART2EN=1;
            pbRCC_APB1ENR->USART3EN=1;
            //I2C1、2時(shí)鐘使能
            pbRCC_APB1ENR->I2C1EN=1;
            pbRCC_APB1ENR->I2C2EN=1;
            //USB時(shí)鐘使能
            pbRCC_APB1ENR->USBEN=1;
            //CAN時(shí)鐘使能
            pbRCC_APB1ENR->CANEN=1;
            //備份接口時(shí)鐘使能
            pbRCC_APB1ENR->BKPEN=1;
            //電源接口時(shí)鐘使能
            pbRCC_APB1ENR->PWREN=1;
            //外部低速時(shí)鐘啟動(dòng)
            pbRCC_BDCR->LSEON=1;
            pbRCC_BDCR->LSEBYP=0;
            pbRCC_BDCR->RTCSEL=1; //選擇外部時(shí)鐘為RTC時(shí)鐘
            }



            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉