STM32的時鐘學習

2020-12-13 電子產品世界

STM32中,有五個時鐘源,為HSI、HSE、LSI、LSE、PLL。

①、HSI是高速內部時鐘,RC振蕩器,頻率為8MHz。
②、HSE是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率範圍為4MHz~16MHz。
③、LSI是低速內部時鐘,RC振蕩器,頻率為40kHz。
④、LSE是低速外部時鐘,接頻率為32.768kHz的石英晶體。
⑤、PLL為鎖相環倍頻輸出,其時鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。其中40kHz的LSI供獨立看門狗IWDG使用,另外它還可以被選擇為實時時鐘RTC的時鐘源。另外,實時時鐘RTC的時鐘源還可以選擇LSE,或者是HSE的128分頻。RTC的時鐘源通過RTCSEL[1:0]來選擇。

本文引用地址:http://www.eepw.com.cn/article/201611/321595.htm

STM32中有一個全速功能的USB模塊,其串行接口引擎需要一個頻率為48MHz的時鐘源。該時鐘源只能從PLL輸出端獲取,可以選擇為1.5分頻或者1分頻,也就是,當需要使用USB模塊時,PLL必須使能,並且時鐘頻率配置為8MHz或72MHz。另外,STM32還可以選擇一個時鐘信號輸出到MCO腳(PA8)上,可以選擇為PLL輸出的2分頻、HSI、HSE、或者系統時鐘。系統時鐘SYSCLK,它是供STM32中絕大部分部件工作的時鐘源。系統時鐘可選擇為PLL輸出、HSI或者HSE。系統時鐘最大頻率為72MHz,它通過AHB分頻器分頻後送給各模塊使用,
AHB分頻器可選擇1、2、4、8、16、64、128、256、512分頻。其中AHB分頻器輸出的時鐘送給5大模塊使用:
①、送給AHB總線、內核、內存和DMA使用的HCLK時鐘。
②、通過8分頻後送給Cortex的系統定時器時鐘。
③、直接送給Cortex的空閒運行時鐘FCLK。
④、送給APB1分頻器。APB1分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB1外設使用(PCLK1,最大頻率36MHz),另一路送給定時器(Timer)2、3、4倍頻器使用。該倍頻器可選擇1或者2倍頻,時鐘輸出供定時器2、3、4使用。
⑤、送給APB2分頻器。APB2分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB2外設使用(PCLK2,最大頻率72MHz),另一路送給定時器(Timer)1倍頻器使用。該倍頻器可選擇1或者2倍頻,時鐘輸出供定時器1使用。另外,APB2分頻器還有一路輸出供ADC分頻器使用,分頻後送給ADC模塊使用。ADC分頻器可選擇為2、4、6、8分頻。在以上的時鐘輸出中,有很多是帶使能控制的,例如AHB總線時鐘、內核時鐘、各種APB1外設、APB2外設等等。當需要使用某模塊時,記得一定要先使能對應的時鐘。需要注意的是定時器的倍頻器,當APB的分頻為1時,它的倍頻值為1,否則它的倍頻值就為2。連接在APB1(低速外設)上的設備有:電源接口、備份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看門狗、Timer2、Timer3、Timer4。注意USB模塊雖然需要一個單獨的
48MHz時鐘信號,但它應該不是供USB模塊工作的時鐘,而只是提供給串行接口引擎(SIE)使用的時鐘。USB模塊工作的時鐘應該是由APB1提供的。連接在APB2(高速外設)上的設備有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口(PA~PE)、第二功能IO口。


相關焦點

  • STM32之時鐘頻率和定時器時鐘講解
    ********************************本學習筆記基於STM32固件庫V3.0使用晶片型號:STM32F103開發環境:MDK********************************本文引用地址:http://www.eepw.com.cn
  • stm32通用定時器用做外部脈衝計數器的例程
    最近幾天要用到stm32對外部輸入脈衝進行計數,很自然想到定時器,可是手上資料沒有講解stm32定時器如何用作外部計數器的,在網上找例程,也沒找到幾個正確的,自己硬著頭皮仔細研究參考手冊,終於知道如何配置了,並寫了一個例程,希望將來對一些網友有用。
  • STM32再學習——實時時鐘(RTC)
    因此,在相應的軟體配置下,可提供時鐘日曆的功能。當然,修改這個計數器的值也就重新設置了系統當前的時間和日期。本文引用地址:http://www.eepw.com.cn/article/182407.htm  RTC只是一個時鐘,但與RTC相連的有兩個系統時鐘,一個是APB1接口的PCLK1另一個是RTC時鐘[注意1]。
  • STM32單片機的定時器和ADC的應用方法介紹
    然後更改定時周期再開始從0計數 主要的幾個函數 //tim_num=0對應 定時器2,tim_num=1對應 定時器3;tim_us:定時器uS數 void stm32 { PCLK1=36MHz TIM CLK = 72 MHz, Prescaler = 72, 72M/72=1M,即計數1000000為1S,即計數加1為1uS /* Time base configuration */ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; stm32
  • STM32時鐘選擇
    系統時鐘的選擇是在啟動時進行,復位時內部8MHz的RC振蕩器被選為默認的CPU時鐘,隨後可以選擇外部的、具失效監控的4~16MHz時鐘;當外部時鐘失效時,它將被隔離,同時會產生相應的中斷。
  • stm32定時器時間計算
    STM32定時器的工作原理   STM32之所以能夠實現定時,是單片機內部在計數脈衝(來自晶振)   T=1/F (F為頻率)   例如:我們以51單片機舉例,假設單片機搭配12MHz的晶振,由於51單片機是12分頻(即1個機器周期有12個時鐘周期),則單片機的最小定時時間為
  • avr單片機和stm32區別與優缺點分析
    摘要:avr單片機和stm32單片機是目前使用較廣泛的單片機,那麼avr單片機和stm32單片機有什麼區別呢?有什麼優劣勢呢?通常時鐘頻率用4~8MHz,故 最短指令執行時間為250~125ns。   avr單片機缺點:   1. 是沒有位操作,都是以字節形式來控制和判斷相關寄存器位的   2. C語言與51的C語言在寫法上存在很大的差異,這讓從開始學習51單片機的朋友很不習慣   3.
  • stm32屬於arm嗎_arm和stm32的區別
    打開APP stm32屬於arm嗎_arm和stm32的區別 發表於 2017-10-10 11:34:35        stm32屬於arm嗎?
  • STM32之option bytes踩坑記錄
    最近在做一個stm32項目,用的盜版jlink調試,突然某次下完程序,stm32竟然開始無限重啟了,量了一下復位腳,發現有周期性的重啟脈衝輸出,一開始我以為是硬體壞了,重新焊了一套硬體,發現新焊的是好的,但是原來那塊板子,檢查來檢查去感覺也不像是硬體和程序的問題。
  • stm32的gpio模擬iic小記
    在用stm32的模擬iic讀取mpu6050時發現讀whoami寄存器為0xd1,而正確的值應該為0x68,導致這個問題基本上有以下幾個原因:    1、如果是杜邦線連接,線太長且線質量不好會導致這個問題;    2、上拉電阻不合適,上拉電阻不合適的話會導致iic兩根線上的波形不好
  • STM32ADC使用方法解析
    因項目需要使用到STM32的ADC功能,雖然對ADC的使用並不陌生,但是第一接觸stm32的ADC功能還是有種無從下手的感覺,主要是因為STM32ADC設計較為複雜,一時對相關的專業術語較為生疏,此外固件庫中涉及到的函數雖都進行了分門別類但是還是感覺函數較多,難以很快掌握,現就將個人理解寫出,以便大家共同進步。
  • STM32編程與51編程一樣嗎?區別是什麼?
    同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、複雜的輸入輸出系統集成在一塊晶片上。 那麼作為開發者在開發51系列單片機與stm32系列單片機時存在什麼樣的差異性呢,下面就以國內用的最多STC89C51為51系列單片機代表和stm32對比討論下。 1.
  • STM32的SysTick時鐘源來自哪裡?
    不管是使用標準外設庫,還是HAL庫,你初始化SysTick,都會調用內核中的SysTick_Config函數。標準庫常用初始化:SysTick_Config(SystemCoreClock / 1000);HAL庫初始化同樣也是調用底層的初始化函數:uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb){ return SysTick_Config(TicksNumb
  • STM32通用定時器(時鐘選擇,模式選擇)
    STM32的定時器功能很強大,學習起來也很費勁兒.其實手冊講的還是挺全面的,只是無奈TIMER的功能太複雜,所以顯得手冊很難懂,我就是通過這樣看手冊:while(!SUCCESS){看手冊…}才搞明白的!
  • stm32定時器觸發adc
    stm32的ADC特點   STM32的ADC有單次轉換和連續轉換2種模式,這兩種模式又可以選擇是否結合掃描模式。 如何使stm32定時器觸發adc      STM32 ADC的常規通道可以由以上圖6個信號觸發任何一個,我們以使用TIM2_CH2觸發ADC1,獨立模式
  • Ubuntu系統下安裝stm32官方開發工具STM32CubeIDE
    大家好,遊學電子科技為您帶來:Ubuntu系統下安裝stm32官方開發工具STM32CubeIDE。STM32CubeIDE是st意法官方提供的stm32開發工具,這款工具在編譯速度上具有比較高的優勢,尤其是跟keil5相比真是沒得說。
  • stm32的定時器輸入捕獲與輸出比較
    明確一點對比AD的構造,stm32有3個AD,每個AD有很多通道,使用哪個通道就配置成哪個通道,這裡定時器也如此,有很多定時器TIMx,每個定時器有很多CHx(通道),可以配置為輸入捕捉-------測量頻率用,也可以配置為輸出比較----
  • STM32系統滴答_及不可不知的延時技巧上
    另外對於SysTick的時鐘源的選擇,要注意它的時鐘源可選擇內部時鐘(FCLK,CM3上的自由運行時鐘,STM32中對應是AHB),或者是外部時鐘( CM3處理器上的STCLK信號,STM32中對應是AHB/8)可參考如下圖
  • stm32全稱是什麼
    stm32全稱是意法半導體32位系列微控制器晶片。   ST即意法半導體(STMicroelectronics)。   意法半導體 (STMicroelectronics) 集團於1987年6月成立,是由義大利的SGS 微電子公司和法國Thomson 半導體公司合併而成。
  • STM32 ESP8266的WIFI TFT自動校時天氣預報 (含AD設計 燒錄文件 DIY030)
    本設計使用stm32作為主控,採用esp8266作為網絡接入模組,可實現自動校準時間以及獲取天氣信息等功能!該項目成本低廉,主要功能為自動校時與天氣預報,改方案解決了現有電子時鐘走時偏差的問題(可降低時鐘部分硬體要求),具備本地溫溼度測量、天氣預報數據獲取功能,可擴展實現節氣提醒,自動報時,鬧鐘等功能。