0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

stm32啟動過程詳解

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-12-08 15:47 ? 次閱讀

STM32啟動過程詳解

近年來,STM32微控制器嵌入式系統(tǒng)中的應用越來越廣泛。STM32微控制器具有高性能、低功耗、易擴展和豐富的外設接口等優(yōu)勢。而要讓STM32微控制器正常工作,首先要了解它的啟動過程。本文將詳細介紹STM32的啟動過程。

一、復位電路

對于STM32微控制器來說,復位是啟動的第一步。任何系統(tǒng)都需要一個穩(wěn)定的狀態(tài)來啟動,這就是復位的作用。STM32微控制器提供了多種復位方式,包括用戶復位、電源復位、編程復位和外部復位。

1. 用戶復位

用戶復位是通過設置控制寄存器的某個位實現的,這個位稱為外部復位位控制位。通過將這個位設為1,可以觸發(fā)復位操作。

2. 電源復位

電源復位是通過斷電和重新上電實現的。只要電源電壓低于微控制器的工作電壓范圍,就會觸發(fā)電源復位。

3. 編程復位

編程復位是通過通過JTAG/SWD接口進行復位。在調試期間,可以使用編程器發(fā)送復位命令。

4. 外部復位

外部復位一般是通過外部信號,如按鍵等觸發(fā)的。通過設置相應的IO口為復位引腳,并且與一個特定的電平或電平變化綁定,就可以觸發(fā)外部復位。

二、復位向量表

復位后,STM32會運行內部的復位向量表。STM32的復位向量表是一個存儲著一系列函數地址的表格,這些函數是程序執(zhí)行的起點。復位向量表中的第一個地址是復位例程的地址。

在STM32的內存布局中,復位向量表位于存儲器的起始地址。復位向量表存儲著一系列函數地址,包括復位例程地址、中斷服務例程地址等。在復位過程中,STM32會讀取復位向量表,并跳轉到復位例程的地址開始執(zhí)行。

三、系統(tǒng)初始化

在執(zhí)行復位例程之前,STM32需要進行一系列的系統(tǒng)初始化工作,以確保系統(tǒng)正常運行。系統(tǒng)初始化主要包括時鐘初始化和外設初始化。

1. 時鐘初始化

時鐘是微控制器工作的基礎。STM32支持多種時鐘源,包括內部時鐘源和外部時鐘源。時鐘初始化主要包括選擇時鐘源、配置時鐘分頻系數等工作。時鐘初始化完成后,微控制器才能夠正常工作。

2. 外設初始化

STM32微控制器內置了豐富的外設接口,包括通用輸入輸出口(GPIO)、通用串行總線(SPI/I2C/UART)、定時器、模數轉換器等。在系統(tǒng)初始化階段,需要通過配置相應的寄存器,使這些外設接口正常工作。

四、復位例程

復位例程是STM32在復位后首先執(zhí)行的函數。復位例程的作用是初始化處理器的寄存器并設置通用模式。

復位例程主要包括以下幾個步驟:

1. 初始化堆棧指針:堆棧指針是存儲在寄存器中的,指向當前函數棧幀的棧頂。

2. 初始化全局變量:復位例程會將全局變量的初始值設置為0或者其他默認值。

3. 初始化處理器寄存器:包括設置處理器的工作模式、使能中斷等。

4. 跳轉到主函數:復位例程完成后,會跳轉到用戶定義的主函數,開始執(zhí)行用戶的應用程序。

五、應用程序

在復位例程執(zhí)行結束后,STM32會跳轉到用戶定義的主函數,開始執(zhí)行用戶的應用程序。用戶可以在主函數中編寫自己的代碼,實現各種功能。

在應用程序中,可以通過調用STM32提供的庫函數或者進行直接讀寫寄存器的方式來控制STM32的外設。通過合理運用外設接口,可以實現豐富的功能,如控制LED燈、讀取按鍵、通過串口發(fā)送數據等。

六、總結

本文詳細介紹了STM32的啟動過程,包括復位電路、復位向量表、系統(tǒng)初始化、復位例程和應用程序等。了解STM32的啟動過程有助于開發(fā)者更好地理解STM32微控制器的工作原理,并能夠針對具體應用場景進行優(yōu)化和調試。

STM32微控制器具有性能強大、易擴展和豐富的外設接口等優(yōu)勢,廣泛應用于各種嵌入式系統(tǒng)中。通過合理利用STM32的啟動過程和功能,可以實現各種應用,如智能家居、工業(yè)自動化、醫(yī)療設備等。因此,深入了解STM32的啟動過程對于嵌入式開發(fā)人員來說是非常重要的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7552

    瀏覽量

    151417
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3593

    瀏覽量

    129466
  • STM32
    +關注

    關注

    2270

    文章

    10900

    瀏覽量

    355981
收藏 人收藏

    評論

    相關推薦

    BQ79600-Q1啟動過程

    電子發(fā)燒友網站提供《BQ79600-Q1啟動過程.pdf》資料免費下載
    發(fā)表于 11-09 14:57 ?0次下載
    BQ79600-Q1<b class='flag-5'>啟動過程</b>

    AIC3254啟動過程是怎樣的?需要功能調節(jié)延時,請問怎么實現?

    AIC3254 啟動問題 :沒有IIS,時鐘是用MSP430產生的8M給AIC3254工作時鐘的,但是每次啟動要用手摸一下MCLK才能啟動,什么原因呢!大俠們能否說明一下AIC3254啟動
    發(fā)表于 11-07 07:28

    負載電容對電源轉換器啟動過程的影響

    理想的電源轉換器需要無論負載如何變化都保持輸出電壓穩(wěn)定。在實際應用中,負載瞬態(tài)期間選擇不合適的輸出電容會導致過高的紋波電壓和浪涌電流,從而影響電源轉換器的性能。本文將介紹選擇輸出電容的指南,詳細介紹負載電容對啟動過程的影響,并提供改進建議。
    的頭像 發(fā)表于 10-28 11:08 ?269次閱讀
    負載電容對電源轉換器<b class='flag-5'>啟動過程</b>的影響

    PA3113D2在系統(tǒng)啟動過程中會出現一個POP聲,請問是什么原因造成的?

    請教各位高手,我現在CODEC芯片用的是WOLFSON WM8960,OPA用的是TI PA3113D2,上電瞬間的POP聲已經解決,但是在系統(tǒng)啟動過程中(快啟動完成時)還會出現一個POP聲,請問是什么原因造成的?
    發(fā)表于 10-18 06:39

    使用pahomqtt啟動過程中pipe_fops_open時出現rt_condvar_timedwait ,如何解決?

    在使用pahomqtt 啟動過程中pipe_fops_open 時出現rt_condvar_timedwait 死等,而RTT 5.0則可以。請問該如何解決?
    發(fā)表于 09-26 07:11

    YTM32的HA系列微控制器啟動過程詳解

    見,以確保信息安全的需要。然而,開發(fā)者在自行編譯固件時,需要配合BOOT ROM中的bootloader,才能正常地引導到用戶應用程序,完成啟動過程。
    的頭像 發(fā)表于 07-15 09:24 ?424次閱讀
    YTM32的HA系列微控制器<b class='flag-5'>啟動過程</b><b class='flag-5'>詳解</b>

    啟動柜的作用和功能是什么

    啟動柜是一種用于電機啟動的電氣設備,它通過控制電機啟動過程中的電壓和電流,實現電機的平滑啟動,減少啟動過程中的電流沖擊和機械沖擊,延長電機
    的頭像 發(fā)表于 06-18 14:29 ?1423次閱讀

    90kw電機軟啟動瞬間電流多大

    一、引言 電機作為工業(yè)生產中不可或缺的動力設備,其啟動方式對電機的使用壽命、能耗以及啟動過程中的機械沖擊等有著重要影響。傳統(tǒng)的直接啟動方式雖然簡單,但啟動電流大,對電網和電機本身都存在
    的頭像 發(fā)表于 06-18 14:07 ?1572次閱讀

    直接啟動和軟啟動的區(qū)別是什么

    直接啟動和軟啟動是兩種不同的電動機啟動方式,它們在啟動過程中對電動機的電流、轉矩和機械沖擊等方面有不同的影響。本文將詳細介紹直接啟動和軟
    的頭像 發(fā)表于 06-18 11:35 ?3103次閱讀

    什么叫軟啟動?如何實現軟啟動

    啟動(Soft Start)是一種電動機啟動方式,它通過控制電動機的啟動電流,使電動機在啟動過程中逐漸加速,從而減少啟動時的電流沖擊和機械
    的頭像 發(fā)表于 06-18 11:31 ?8421次閱讀

    啟動和變頻啟動的區(qū)別是什么

    的概念 軟啟動,顧名思義,是一種使電動機在啟動過程中能夠平滑、漸進地加速到額定轉速的啟動方式。它通過控制電動機的輸入電壓,使其在啟動過程中逐漸增加,從而減小
    的頭像 發(fā)表于 06-18 10:33 ?5913次閱讀

    STM32啟動腳本詳解

    我從Keil和STM32CubeIDE開始我的嵌入式開發(fā),然后慢慢過渡到只使用文本編輯器而沒有任何集成開發(fā)環(huán)境(IDE)。我一直使用這些IDE提供的啟動文件。在這篇文章中,我將解釋如何用C++編寫
    發(fā)表于 05-31 14:17 ?1次下載

    STM32__UCOSII系統(tǒng)啟動過程中空閑任務和統(tǒng)計任務扮演怎樣的角色?

    如題STM32__UCOSII系統(tǒng)啟動過程中空閑任務和統(tǒng)計任務扮演怎樣的角色
    發(fā)表于 05-08 07:37

    如何用STM32動過eMMC?

    大家好, 請問有人成功用STM32動過eMMC? 有的話可否分享source code?
    發(fā)表于 04-11 08:24

    STM32WBA Nucleo-64設置主頻為100M,發(fā)現啟動過程中卡死在PWR_VOSR_VOSRDY,為什么?

    使用ST官方的STM32WBA Nucleo-64板子, 當設置主頻為100M,發(fā)現啟動過程中卡死在PWR_VOSR_VOSRDY; 設置主頻為16MHz的時候,可以正常完成初始化。 使用的是CodeMx生成的工程 這是啥原因呢?看手冊也沒找到原因
    發(fā)表于 03-14 08:28