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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1954|回復: 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久久国产综合久久 | a级网站 | 日本成人综合 | 亚洲福利在线视频 | 午夜国产精品视频 | 国产成人精品久久 | 国产精品久久久久久久久久久久 | 91免费在线 | 一区二区三区av | 国产福利在线播放麻豆 | a视频在线观看 | 欧美一区二区三区久久精品 | 国产免费让你躁在线视频 | 欧美大片黄 | 久久久精品一区 | 亚洲欧美国产一区二区三区 | 成人免费在线观看视频 | 国产综合久久久久久鬼色 | 午夜影视 | 黄色精品 | 国产精品久久久久久网站 | 精品国产18久久久久久二百 | 成年免费在线观看 | 成人午夜精品 | 日韩欧美国产精品 | www.夜夜骑 | 精久久久久| 欧美日韩亚洲在线 | 久久福利 | 国产精品揄拍一区二区久久国内亚洲精 | 久久一二三区 | 久久伊人一区 | 天天玩天天操天天干 | 日韩一区二区福利视频 | 国内自拍偷拍 | 黄色在线免费观看视频网站 | 国产成人精品久久二区二区91 |