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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1869|回復: 0
打印 上一主題 下一主題
收起左側

STM32時鐘樹系統淺析

[復制鏈接]
跳轉到指定樓層
樓主
本帖主要是討論stm32F103系列IC,同類的stm32的時鐘樹系統與F103系列相差不大,可做參考由于本人能力有限,難免會出現錯誤,歡迎批評指正!!!

時鐘是一顆ic的心臟,為程序執行提供基礎步調;可以說,一個單片機的性能強不強,與時鐘頻率直接掛鉤;
下面我們現在簡單介紹一下STM32F103系列的時鐘樹,參考附件截圖;

STM32F10xxx參考手冊RCC章節中可以看出,時鐘樹包含兩個外部輸入時鐘,一個外部輸出時鐘和兩個內部振蕩時鐘;
兩個外部輸入時鐘分別是:HSE,LSE
一個外部輸出時鐘是:MCO
兩個內部振蕩時鐘分別是:HSI,LSI
還包含了PLL鎖相環和預分頻器,這些共同組成了整個F103的時鐘樹系統;

我該如何配置時鐘呢?以打開gpio時鐘為例:
第一步:等待HSE,LSE,HSI,LSI起振,起振成功之后,配置PLL Source和PLL MUL;
第二步:設置SYSCLK Source,可以默認設置PLL;
第三步:設置AHB總線預分頻系數,使其總線頻率不超過72MHZ;
第四步:設置APB1和APB2總線預分頻系數,使其總線頻率不超過最大總線頻率72MHZ和36MHZ;
第五步:打開GPIO時鐘使能,使其能正常工作;



這樣我就配置好了一個時鐘,下面是代碼示例:
  1. /* enable lse clock*/
  2. hw_rcc_set_lse_enable(true);
  3. hw_rcc_lse_wait_ready();

  4. /* enable lsi clock */
  5. hw_rcc_set_lsi_enable(true);
  6. hw_rcc_lsi_wait_ready();

  7. /* enable hse clock */
  8. hw_rcc_set_hse_enable(true);
  9. hw_rcc_hse_wait_ready();

  10. /* open hsi clock */
  11. hw_rcc_set_hsi_enable(true);
  12. hw_rcc_hsi_wait_ready();

  13. /* configure pll clock source */
  14. rcc_set_pll_multiplication_factor(clock->pll_mul);
  15. rcc_set_pll_source(clock->pll_source);

  16. /* enable pll clock */
  17. hw_rcc_set_pll_enable(true);
  18. hw_rcc_pll_wait_ready();

  19. /* configure anb,apb1,apb2 prescaler */
  20. rcc_set_hpre(clock->ahb_prescaler);
  21. rcc_set_ppre1(clock->apb1_prescaler);
  22. rcc_set_ppre2(clock->apb2_prescaler);

  23. /* set system clock source */
  24. rcc_set_sysclk_source(clock->sysclk_source);

  25. /* enable gpio clock */
  26. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPAEN, IOPAEN);
  27. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPBEN, IOPBEN);
  28. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPCEN, IOPCEN);
  29. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPDEN, IOPDEN);
  30. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPEEN, IOPEEN);
  31. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPFEN, IOPFEN);
  32. hw_rcc_apb2periph_clock_enable(RCC_APB2ENR_IOPGEN, IOPGEN);
復制代碼

另外在時鐘樹上,發現cortex系統時鐘只有AHB時鐘的1/8,也就是說72M的系統時鐘下,內核只有9M的速度,與內核相關外設最大時鐘頻率只有9M。

配置時鐘樹,需要按照參考手冊上的來,不能超過各個總線的最大時鐘頻率的限制;
可以通過標準庫和HAL庫已經提供了相關的初始化接口,直接就可以配置到最大的速度;
也可以通過STM32CubeMX這種圖形化工具自己來配置各個時鐘,直接生成代碼;

51hei截圖20230806174949.png (296.38 KB, 下載次數: 109)

51hei截圖20230806174949.png

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久久久久最新 | 怡红院免费的全部视频 | 欧美一区免费 | 国产二区视频 | 国产91在线视频 | 欧美日韩精品影院 | 久青草影院 | 日韩在线电影 | 亚洲综合一区二区三区 | 欧美精品三区 | 国产98色在线 | 日韩 | 午夜精品久久久久久久久久久久 | 伊人电影院av | 精品乱码一区二区三四区视频 | 欧洲av一区| 国产一区二区三区在线视频 | 日本a在线 | 久久久久国产一区二区三区四区 | 国产一区二区三区在线免费 | 精品国产一区二区国模嫣然 | www日韩| 亚洲午夜视频 | 五月婷婷色 | 国产成人精品一区二区三区四区 | 国产综合精品一区二区三区 | 97精品超碰一区二区三区 | 天堂久久网 | 国外激情av | 黄色国产 | 欧洲一级毛片 | 久久久精品综合 | 在线看91 | 欧洲色综合 | 国产精品有限公司 | 色.com| 亚洲精品一区二区三区在线 | 亚洲国产精品一区 | 亚洲aⅴ | 91九色在线观看 | 午夜视频在线观看网址 | 午夜欧美一区二区三区在线播放 |