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

標題: STM32時鐘樹系統淺析 [打印本頁]

作者: 烏托邦的犬次郎    時間: 2023-8-6 17:50
標題: 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





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国家aaa的一级看片 h片在线看 | 日本在线免费视频 | 精品久久影院 | 日本成人二区 | 91精品国产91久久久久久吃药 | 亚洲一区综合 | 奇米影视77 | 成人乱人乱一区二区三区软件 | 精品久久九九 | 在线免费视频一区 | 成人免费在线观看视频 | 色综合久久天天综合网 | 成人精品久久久 | 99久久久久久 | 亚洲国产欧美在线 | 一区二区国产在线观看 | 亚洲久草视频 | 亚洲精品日韩一区二区电影 | 国产精品久久久久久久岛一牛影视 | 久久久精品一区二区三区 | 欧美一级在线 | 99re66在线观看精品热 | 免费久 | 中文字幕视频一区二区 | 性国产xxxx乳高跟 | 欧美黄页 | 午夜天堂精品久久久久 | 国产成人久久精品 | 一区二区三区在线播放视频 | h片在线看 | 国产精品一区在线观看 | 天天操精品视频 | 美女毛片免费看 | 久久成人精品一区二区三区 | 久久久久久久久91 | 国产91观看 | 超碰在线免费av | 日韩在线资源 | 精品99久久 | 午夜免费看 | 欧美在线a |