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

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

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

stm32串口通信流程圖

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

1.寫在前面

首先,你要知道STM32啟動(dòng)文件中啟動(dòng)流程,你就需要掌握一點(diǎn)匯編基礎(chǔ)知識(shí)。

匯編語(yǔ)言屬于機(jī)器語(yǔ)言,或者說(shuō)低級(jí)語(yǔ)言,C語(yǔ)言屬于高級(jí)語(yǔ)言,所以,匯編和C語(yǔ)言在語(yǔ)法上差異很大。

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

2.說(shuō)明

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

雖然啟動(dòng)文件(匯編)代碼各有不同,但它們?cè)眍愃?,都屬于匯編程序。

我們拿基于MDK-ARM的啟動(dòng)文件來(lái)舉例,說(shuō)一下要點(diǎn)內(nèi)容。

3.分配堆棧

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

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

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

在IAR中,是通過(guò)工程配置堆棧大?。?/p>

4.向量表

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

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

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

5.執(zhí)行代碼

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

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

之前標(biāo)準(zhǔn)外設(shè)庫(kù)在SystemInit這個(gè)函數(shù)初始化了系統(tǒng)時(shí)鐘,后面HAL庫(kù)單獨(dú)把那部分代碼提出來(lái)了。

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

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

    關(guān)注

    2270

    文章

    10918

    瀏覽量

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

    關(guān)注

    1

    文章

    1640

    瀏覽量

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

    關(guān)注

    0

    文章

    174

    瀏覽量

    24235
  • 啟動(dòng)流程
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    6490
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RS232串口連接方式及注意事項(xiàng)

    數(shù)據(jù)交換。 RS-232串口簡(jiǎn)介 RS-232標(biāo)準(zhǔn)最初由電子工業(yè)聯(lián)盟(EIA)在1960年制定,用于定義串行通信的電氣特性、信號(hào)定時(shí)和數(shù)據(jù)格式。RS-232串口使用25針的D型連接器(DB-25),但后來(lái)更常用的是9針的D型連接
    的頭像 發(fā)表于 12-10 16:23 ?1350次閱讀

    LS10串口數(shù)據(jù)庫(kù)模塊外擴(kuò)SD卡功能

    LS10串口數(shù)據(jù)庫(kù)模塊外擴(kuò)SD卡功能
    的頭像 發(fā)表于 11-23 09:42 ?239次閱讀
    LS10<b class='flag-5'>串口</b>數(shù)據(jù)庫(kù)模塊外擴(kuò)SD卡功能

    RS232串口通信中常見問(wèn)題及解決辦法

    RS232串口通信中常見問(wèn)題及解決辦法主要包括以下幾個(gè)方面: 一、物理連接問(wèn)題 問(wèn)題 :串口線未插穩(wěn)或接口松動(dòng)。 解決辦法 :重新插拔串口線,確保連接牢固。同時(shí)檢查插頭和針腳是否損壞,
    的頭像 發(fā)表于 11-21 09:32 ?1828次閱讀

    RS232串口通信協(xié)議詳解

    在計(jì)算機(jī)硬件和通信領(lǐng)域,RS-232串口通信協(xié)議是一個(gè)歷史悠久且廣泛使用的標(biāo)準(zhǔn)。它允許計(jì)算機(jī)通過(guò)串行接口與各種外部設(shè)備進(jìn)行通信,如調(diào)制解調(diào)器、鼠標(biāo)、打印機(jī)等。 RS-232的歷史和定義
    的頭像 發(fā)表于 11-21 09:24 ?1174次閱讀

    VSCode中Markdown借助plantuml繪制流程圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    隨著工業(yè)自動(dòng)化技術(shù)的不斷發(fā)展,各種通信協(xié)議和接口標(biāo)準(zhǔn)在工業(yè)設(shè)備中的應(yīng)用越來(lái)越廣泛。其中,485串口和Modbus TCP協(xié)議是兩種常見的通信協(xié)議,廣泛應(yīng)用于各種工業(yè)自動(dòng)化設(shè)備和系統(tǒng)。傳統(tǒng)的485
    的頭像 發(fā)表于 03-04 17:10 ?1687次閱讀
    物通博聯(lián)485轉(zhuǎn)換網(wǎng)關(guān):實(shí)現(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)試呢?本文將詳細(xì)方法分享給大家。
    的頭像 發(fā)表于 01-25 11:32 ?1744次閱讀
    ZDP1440<b class='flag-5'>串口</b>屏應(yīng)用開發(fā)如何使用虛擬<b class='flag-5'>串口</b>調(diào)試