久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18344|回復: 11
打印 上一主題 下一主題
收起左側(cè)

STM32F103時鐘配置流程

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:276663 發(fā)表于 2018-3-15 11:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 IdeaMing 于 2018-3-16 10:15 編輯

STM32F103時鐘配置流程



前言:
一般情況下單片機的時鐘配置是單片機程序中的第一步,也是很重要的一步。這時候我們需要考慮以下幾個問題。
1. 系統(tǒng)時鐘的時鐘源用哪個。
2. 系統(tǒng)時鐘頻率要多少。
3. 每個模塊的時鐘頻率要多少。
4. 如果外部時鐘出了問題,這個時候時鐘是怎么運行的。

下面就針對性的講一講STM32F103的時鐘配置。



知識點:
1. 系統(tǒng)復位后,HSI振蕩器被選為系統(tǒng)時鐘。當時鐘源被直接或通過PLL間接作為系統(tǒng)時鐘時,它將不能被停止。

2. STM32F103的三個可以作為系統(tǒng)時鐘的時鐘源,分別是HSI、HSE、PLL。而PLL的時鐘源是HSI/2(內(nèi)部RC振蕩器二分頻)、HSE。

3.如果使用HSI,系統(tǒng)時鐘我們能達到的最大頻率是64MHz,如果使用HSE,系統(tǒng)時鐘最大頻率是72MHz

4.APB時鐘有低速PCLK1和高速PCLK2PCLK1是從HCLK二分頻得到的,最大36MHZ,根據(jù)上一條知識點如果是使用HSI,則最快是32MHz

5. PLL的設定需要在使能之前,一旦PLL使能后參數(shù)不可更改。

6.附錄是一些縮寫的英文全稱,也有一些補充的知識點。


步驟:
第一步     初始化時鐘
         不管現(xiàn)在SYSCLK的時鐘源是哪個,我們要更換時鐘源。先RCC_DeInit();

第二步              打開時鐘
         內(nèi)部高速時鐘HSI           RCC_HSICmd(ENABLE);
         外部高速時鐘HSE          RCC_HSEConfig(RCC_HSE_ON);

第三步              等待時鐘晶振工作
         HSI            While(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)==RESET);
         HSE           While(RCC_GetFlagStatus(RCC_FLAG_HSERDY)==RESET);

第四步              設置AHB時鐘HCLK
                                                                 RCC_HCLKConfig(RCC_SYSCLK_Div1);
        分頻系數(shù)自己設定,一般都是RCC_SYSCLK_Div1即不分頻。

第五步              設置低速APB時鐘
                                                                 RCC_PCLK1Config(RCC_HCLK_Div2);

第六步              設置高速APB時鐘
                                                                 RCC_PCLK2Config(RCC_HCLK_Div1);
第七步              設置Flash預緩沖
                                                                 FLASH_SetLatency(FLASH_Latency_2);
                                              FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);          // 使能flash預緩沖
       Flash的操作也沒有總線時鐘快,所以需要總線在操作flash時稍作等待。推薦根據(jù)HCLK設置。
0-24MHz時,取FLASH_Latency_0;24-48MHz,取FLASH_Latency_1;48-72MHz時,取FLASH_Latency_2。

第八步              設置PLL                     如果不使用PLL,請略過此步驟
         HSI                                                  RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16 );
         HSE                                                 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9 );

第九步              打開PLL                     如果不使用PLL,請略過此步驟
                                                                 RCC_PLLCmd(ENABLE);

第十步              等待PLL工作          如果不使用PLL,請略過此步驟
                                                                 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)== RESET);

第十一步              設置系統(tǒng)時鐘
         HSI                                                  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
         HSE                                                 RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
         PLL                                                  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
第十二步         判斷是否是設置的時鐘
         HSI                                                  while(RCC_GetSYSCLKSource()!= 0x00);
         HSE                                                 while(RCC_GetSYSCLKSource()!= 0x04);
         PLL                                                  while(RCC_GetSYSCLKSource()!= 0x08);



附錄:一些縮寫的英文全稱及中文翻譯,幫助理解記憶。
IWDG       IndependentWatchdog                                   獨立看門狗

RTC           RealTime Clock                                                      實時時鐘
                   時鐘源可以是LSI,或者LSE,再或者HSE128分頻。
LSI             LowSpeed Internal                                                       內(nèi)部低速時鐘
                   RC振蕩器,頻率為40kHz。供IWDG使用,還能作為RTC的時鐘源。
HSI            HighSpeed Internal                                             內(nèi)部高速時鐘
                   RC振蕩器,頻率為8MHz
HSE           HighSpeed External                                             外部高速時鐘
                   可接石英/陶瓷諧振器,或者接外部時鐘源,頻率范圍為4MHz~16MHz

PLL          PhaseLockedLoop                                                   鎖相環(huán)倍頻輸出
                   其時鐘輸入源可選擇為HSI/2HSE或者HSE/2。倍頻可選擇為2~16倍,

SYSCLK     SystemColock                                                                 系統(tǒng)時鐘

AHB          AdvancedHigh performance Bus                   高級高性能總線
                   AHB主要用于高性能模塊(CPUDMADSP)之間的連接。

APB          Advanced PeripheralBus                                  高級外圍設備總線
                   APB主要用于外設模塊(ADCUSBSPIUART)AHB之間的連接。

HCLK         Advanced High performance Bus Clock                 高級高性能總線時鐘
                   就是SYSCLK經(jīng)過AHBPrescaler(預分頻器)后得到的AHB的時鐘。

PCLK         PeripheralBus Clock                                            外圍設備總線時鐘                  
                   PCLK有兩個,一個是低速的PCLK1,另一個是高速的PCLK2
                   PCLK1是經(jīng)過APB1Prescaler后得到的APB1時鐘。
PCLK2是經(jīng)過APB2 Prescaler后得到的APB2時鐘。

FCLK                   FreeRuning Clock                                                  自由運行時鐘
為供給CPU內(nèi)核的時鐘信號,CPU的主頻就是指這個信號;1/FCLK就是CPU時鐘周期。
為什么叫自由運行時鐘呢?下面是別人家的講解。
ARMJISHU注:FCLK 為處理器的自由振蕩的處理器時鐘,用來采樣中斷和為調(diào)試模塊計時。在處理器休眠時,通過FCLK 保證可以采樣到中斷和跟蹤休眠事件。 Cortex-M3內(nèi)核的“自由運行時鐘(free running clock)”FCLK。“自由”表現(xiàn)在它不來自系統(tǒng)時鐘HCLK,因此在系統(tǒng)時鐘停止時FCLK也繼續(xù)運行。FCLK和HCLK 互相同步。FCLK 是一個自由振蕩的HCLK。FCLK 和HCLK 應該互相平衡,保證進入Cortex-M3 時的延遲相同。


STM32F103時鐘配置流程.pdf (394.67 KB, 下載次數(shù): 165)



評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:276663 發(fā)表于 2018-3-16 09:06 | 只看該作者
這個時鐘配置完了之后就是端口時鐘的開關(guān),外設總線的時鐘速度,比如SPI.
回復

使用道具 舉報

板凳
ID:276663 發(fā)表于 2018-3-16 10:16 | 只看該作者
IdeaMing 發(fā)表于 2018-3-16 09:06
這個時鐘配置完了之后就是端口時鐘的開關(guān),外設總線的時鐘速度,比如SPI.

第二版本增加了第七步,flash的操作延時設置和flash預緩沖的設置。
回復

使用道具 舉報

地板
ID:127084 發(fā)表于 2018-3-16 15:47 | 只看該作者
非常有用,果斷下載 先謝樓主
回復

使用道具 舉報

5#
ID:68875 發(fā)表于 2018-7-8 21:49 | 只看該作者
good job
回復

使用道具 舉報

6#
ID:269314 發(fā)表于 2018-7-9 17:48 | 只看該作者
贊!真的很清楚明白,小弟有個疑問,恭請樓主幫忙解惑,感謝!

小弟啟用的是外部時鐘,即HSE,前十步都與樓主一致,但在第十一、十二步,使用的是PLL對應的代碼,這個與使用HSE對應的代碼有啥區(qū)別和影響呢?再次感謝!
回復

使用道具 舉報

7#
ID:231528 發(fā)表于 2018-7-9 21:20 | 只看該作者
非常感謝
回復

使用道具 舉報

8#
ID:276663 發(fā)表于 2018-8-23 16:40 | 只看該作者
pc333 發(fā)表于 2018-7-9 17:48
贊!真的很清楚明白,小弟有個疑問,恭請樓主幫忙解惑,感謝!

小弟啟用的是外部時鐘,即HSE,前十步都 ...

HSE就是你外面接的那個晶振頻率。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:112471 發(fā)表于 2018-11-15 13:12 | 只看該作者
厲害啊
回復

使用道具 舉報

10#
ID:51905 發(fā)表于 2019-1-16 17:13 | 只看該作者
不錯~~
回復

使用道具 舉報

11#
ID:436417 發(fā)表于 2019-6-11 20:11 | 只看該作者
非常有用
回復

使用道具 舉報

12#
ID:461428 發(fā)表于 2019-6-23 19:03 | 只看該作者
急需的東東,,謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲电影一区二区三区 | 天堂久久天堂综合色 | 久久99精品久久久久 | 99精品久久久久久 | 最近日韩中文字幕 | 日韩精品人成在线播放 | 99色在线| 国产成年人小视频 | 久久精品亚洲一区二区三区浴池 | 在线一区视频 | 日韩精品视频网 | 成人免费视频网 | 九九九久久国产免费 | 日韩欧美国产一区二区 | 久久久久久黄 | 成人高清视频在线观看 | 久草热视频 | 中文字幕在线一区 | 国产精品一区一区 | 久久久久国产精品www | 91看片网 | 国产激情视频网址 | 成人av在线大片 | 免费黄色录像视频 | 国产一区二区三区久久久久久久久 | 毛片免费看 | 亚洲久久在线 | www久久久 | 亚州中文字幕 | 国产视频福利在线观看 | 乱码av午夜噜噜噜噜动漫 | 狠狠综合久久av一区二区老牛 | 亚洲精品自在在线观看 | 日韩免费福利视频 | 羞羞视频在线观看免费观看 | 国产精品不卡 | 亚洲先锋影音 | 日韩一二区 | 欧美在线免费 | 欧美自拍另类 | 97视频网站|