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

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

3天內(nèi)不再提示

stm32串口通信流程圖

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-03 11:49 ? 次閱讀

1.寫在前面

首先,你要知道STM32啟動文件中啟動流程,你就需要掌握一點匯編基礎(chǔ)知識。

匯編語言屬于機器語言,或者說低級語言,C語言屬于高級語言,所以,匯編和C語言在語法上差異很大。

如果你學底層開發(fā),匯編的一些基礎(chǔ)知識需要掌握。不需要精通,但需要看懂常見的匯編代碼。

2.說明

STM32的啟動文件與編譯器有關(guān),不同編譯器,它的啟動文件不同。

雖然啟動文件(匯編)代碼各有不同,但它們原理類似,都屬于匯編程序。

我們拿基于MDK-ARM的啟動文件來舉例,說一下要點內(nèi)容。

3.分配堆棧

在基于MDK的啟動文件開始,有一段匯編代碼是分配堆棧大小的。

這里重點知道堆棧數(shù)值大小就行。還有一段AREA(區(qū)域),表示分配一段堆棧數(shù)據(jù)段。

數(shù)值大小可以自己修改,也可以使用STM32CubeMX數(shù)值大小配置:

在IAR中,是通過工程配置堆棧大小:

4.向量表

相信大家都知道向量表,先看匯編代碼:

這個向量表就是對應(yīng)手冊中的那些內(nèi)容:

我們需要知道這個地方中的復(fù)位,程序上電之后,是跳到Reset_Handler這個位置。

5.執(zhí)行代碼

上面知道代碼是從Reset_Handler開始執(zhí)行,我們看Reset_Handler匯編代碼:

在啟動的時候,執(zhí)行了SystemInit這個函數(shù)。

之前標準外設(shè)庫在SystemInit這個函數(shù)初始化了系統(tǒng)時鐘,后面HAL庫單獨把那部分代碼提出來了。

執(zhí)行完SystemInit函數(shù),就跳轉(zhuǎn)到我們的main函數(shù)執(zhí)行了。

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

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354308
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49016
  • 復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    169

    瀏覽量

    24183
  • 啟動流程
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    6462
收藏 人收藏

    評論

    相關(guān)推薦

    VSCode中Markdown借助plantuml繪制流程圖

    VSCode中Markdown里通過plantuml繪制流程圖,簡直不要太方便。
    的頭像 發(fā)表于 10-28 11:19 ?214次閱讀

    FT232芯片設(shè)計的USB轉(zhuǎn)RS232串口原理

    FT232芯片設(shè)計的USB轉(zhuǎn)RS232串口原理
    發(fā)表于 10-21 11:06 ?0次下載

    快速實現(xiàn)C2000串口程序升級

    電子發(fā)燒友網(wǎng)站提供《快速實現(xiàn)C2000串口程序升級.pdf》資料免費下載
    發(fā)表于 08-29 10:50 ?0次下載
    快速實現(xiàn)C2000<b class='flag-5'>串口</b>程序升級

    集特推薦 雙網(wǎng)10串口飛騰FT2000商用臺式電腦主機

    前段時間為大家分享了國產(chǎn)龍芯、海光、飛騰D2000的商務(wù)臺式機,它們的共同特點都是單網(wǎng),1個RS232串口。今天就為大家推薦一款雙網(wǎng)、可擴展10串口、14USB接口的飛騰FT200
    的頭像 發(fā)表于 07-17 16:04 ?457次閱讀
    集特推薦  雙網(wǎng)10<b class='flag-5'>串口</b>飛騰FT2000商用臺式電腦主機

    STM32串口通信入門!附通信編程示例

    串行通信與并行通信設(shè)備之間的通信方式可以分為串行通信和并行通信,這兩種通信方式各有優(yōu)缺點。串行
    的頭像 發(fā)表于 07-05 08:21 ?2064次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>入門!附<b class='flag-5'>通信</b>編程示例

    用esp32的串口Stm32F407串口通訊,通過TJA轉(zhuǎn)CAN,結(jié)果esp32串口讀到的一直是自己發(fā)的數(shù)據(jù),為什么?

    我用esp32的串口Stm32F407串口通訊,通過TJA轉(zhuǎn)CAN。結(jié)果esp32串口讀到的一直是自己發(fā)的數(shù)據(jù),各位大神給我看看哪里有問題么
    發(fā)表于 06-19 07:00

    485串口可以用can協(xié)議嗎

    一、引言 隨著工業(yè)自動化和智能控制技術(shù)的發(fā)展,通信協(xié)議在設(shè)備間數(shù)據(jù)傳輸和控制中扮演著越來越重要的角色。485串口和CAN協(xié)議是兩種常見的通信協(xié)議,它們在不同的應(yīng)用場景中發(fā)揮著重要作用。本文將對這兩種
    的頭像 發(fā)表于 06-16 09:21 ?987次閱讀

    STM32做以太網(wǎng)轉(zhuǎn)4串口單核能做嗎?

    目前要做一個以太網(wǎng)轉(zhuǎn)4串口透傳模塊,一個STM32能搞定嗎?是不是需要什么內(nèi)核、?求解~~對內(nèi)核了解不多,裸機100年
    發(fā)表于 05-13 07:27

    STM32G031k8t6串口發(fā)送為什么會進入硬件中斷?

    STM32G031k8t6串口發(fā)送進入硬件中斷
    發(fā)表于 03-13 07:59

    物通博聯(lián)485轉(zhuǎn)換網(wǎng)關(guān):實現(xiàn)設(shè)備485串口數(shù)據(jù)轉(zhuǎn)換為Modbus TCP協(xié)議

    隨著工業(yè)自動化技術(shù)的不斷發(fā)展,各種通信協(xié)議和接口標準在工業(yè)設(shè)備中的應(yīng)用越來越廣泛。其中,485串口和Modbus TCP協(xié)議是兩種常見的通信協(xié)議,廣泛應(yīng)用于各種工業(yè)自動化設(shè)備和系統(tǒng)。傳統(tǒng)的485
    的頭像 發(fā)表于 03-04 17:10 ?1390次閱讀
    物通博聯(lián)485轉(zhuǎn)換網(wǎng)關(guān):實現(xiàn)設(shè)備485<b class='flag-5'>串口</b>數(shù)據(jù)轉(zhuǎn)換為Modbus TCP協(xié)議

    ZDP1440串口屏應(yīng)用開發(fā)如何使用虛擬串口調(diào)試

    ZDP1440串口屏應(yīng)用開發(fā)如何使用虛擬串口調(diào)試呢?本文將詳細方法分享給大家。
    的頭像 發(fā)表于 01-25 11:32 ?1585次閱讀
    ZDP1440<b class='flag-5'>串口</b>屏應(yīng)用開發(fā)如何使用虛擬<b class='flag-5'>串口</b>調(diào)試

    stm32串口接收中斷觸發(fā)原理

    配置串口接收中斷使能:在初始化串口時,需要設(shè)置相應(yīng)的控制寄存器來使能串口接收中斷。這通??梢酝ㄟ^設(shè)置相應(yīng)的標志位或使用特定的寄存器位來完成。
    發(fā)表于 01-17 15:42 ?7684次閱讀
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b>接收中斷觸發(fā)原理

    什么是RS-232串口?消費級電腦通常沒有232串口的主要原因

    什么是RS-232串口?消費級電腦通常沒有232串口的主要原因? RS-232串口是一種標準的串行通信接口,用于在計算機和外部設(shè)備之間傳輸數(shù)據(jù),目的是為計算機和外部設(shè)備之間提供可靠的數(shù)
    的頭像 發(fā)表于 01-09 13:52 ?1025次閱讀

    智能車ROS與STM32串口通信代碼

    這里以一個智能車代碼工程為例,抽取串口通信部分代碼 在頭文件中,進行串口頭文件的包含 # include 在類的定義中,什么一個 serial 類的實例 serial::Serial
    的頭像 發(fā)表于 11-26 17:47 ?1106次閱讀

    ROS與STM32串口通信代碼

    這里以一個智能車代碼工程為例,抽取串口通信部分代碼 在頭文件中,進行串口頭文件的包含 # include 在類的定義中,什么一個 serial 類的實例 serial::Serial
    的頭像 發(fā)表于 11-17 18:10 ?1023次閱讀