0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32串口通信流程图

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-03 11:49 次阅读

1.写在前面

首先,你要知道STM32启动文件中启动流程,你就需要掌握一点汇编基础知识。

汇编语言属于机器语言,或者说低级语言,C语言属于高级语言,所以,汇编和C语言在语法上差异很大。

如果你学底层开发,汇编的一些基础知识需要掌握。不需要精通,但需要看懂常见的汇编代码。

2.说明

STM32的启动文件与编译器有关,不同编译器,它的启动文件不同。

虽然启动文件(汇编)代码各有不同,但它们原理类似,都属于汇编程序。

我们拿基于MDK-ARM的启动文件来举例,说一下要点内容。

3.分配堆栈

在基于MDK的启动文件开始,有一段汇编代码是分配堆栈大小的。

这里重点知道堆栈数值大小就行。还有一段AREA(区域),表示分配一段堆栈数据段。

数值大小可以自己修改,也可以使用STM32CubeMX数值大小配置:

在IAR中,是通过工程配置堆栈大小:

4.向量表

相信大家都知道向量表,先看汇编代码:

这个向量表就是对应手册中的那些内容:

我们需要知道这个地方中的复位,程序上电之后,是跳到Reset_Handler这个位置。

5.执行代码

上面知道代码是从Reset_Handler开始执行,我们看Reset_Handler汇编代码:

在启动的时候,执行了SystemInit这个函数。

之前标准外设库在SystemInit这个函数初始化了系统时钟,后面HAL库单独把那部分代码提出来了。

执行完SystemInit函数,就跳转到我们的main函数执行了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2266

    文章

    10872

    浏览量

    354828
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49052
  • 复位
    +关注

    关注

    0

    文章

    171

    浏览量

    24198
  • 启动流程
    +关注

    关注

    0

    文章

    14

    浏览量

    6467
收藏 人收藏

    评论

    相关推荐

    LS10串口数据库模块外扩SD卡功能

    LS10串口数据库模块外扩SD卡功能
    的头像 发表于 11-23 09:42 138次阅读
    LS10<b class='flag-5'>串口</b>数据库模块外扩SD卡功能

    RS232串口通信中常见问题及解决办法

    RS232串口通信中常见问题及解决办法主要包括以下几个方面: 一、物理连接问题 问题 :串口线未插稳或接口松动。 解决办法 :重新插拔串口线,确保连接牢固。同时检查插头和针脚是否损坏,
    的头像 发表于 11-21 09:32 321次阅读

    RS232串口通信协议详解

    在计算机硬件和通信领域,RS-232串口通信协议是一个历史悠久且广泛使用的标准。它允许计算机通过串行接口与各种外部设备进行通信,如调制解调器、鼠标、打印机等。 RS-232的历史和定义
    的头像 发表于 11-21 09:24 254次阅读

    VSCode中Markdown借助plantuml绘制流程图

    VSCode中Markdown里通过plantuml绘制流程图,简直不要太方便。
    的头像 发表于 10-28 11:19 422次阅读

    FT232芯片设计的USB转RS232串口原理

    FT232芯片设计的USB转RS232串口原理
    发表于 10-21 11:06 1次下载

    快速实现C2000串口程序升级

    电子发烧友网站提供《快速实现C2000串口程序升级.pdf》资料免费下载
    发表于 08-29 10:50 0次下载
    快速实现C2000<b class='flag-5'>串口</b>程序升级

    集特推荐 双网10串口飞腾FT2000商用台式电脑主机

    前段时间为大家分享了国产龙芯、海光、飞腾D2000的商务台式机,它们的共同特点都是单网,1个RS232串口。今天就为大家推荐一款双网、可扩展10串口、14USB接口的飞腾FT200
    的头像 发表于 07-17 16:04 489次阅读
    集特推荐  双网10<b class='flag-5'>串口</b>飞腾FT2000商用台式电脑主机

    用esp32的串口Stm32F407串口通讯,通过TJA转CAN,结果esp32串口读到的一直是自己发的数据,为什么?

    我用esp32的串口Stm32F407串口通讯,通过TJA转CAN。结果esp32串口读到的一直是自己发的数据,各位大神给我看看哪里有问题么
    发表于 06-19 07:00

    485串口可以用can协议吗

    一、引言 随着工业自动化和智能控制技术的发展,通信协议在设备间数据传输和控制中扮演着越来越重要的角色。485串口和CAN协议是两种常见的通信协议,它们在不同的应用场景中发挥着重要作用。本文将对这两种
    的头像 发表于 06-16 09:21 1096次阅读

    STM32做以太网转4串口单核能做吗?

    目前要做一个以太网转4串口透传模块,一个STM32能搞定吗?是不是需要什么内核、?求解~~对内核了解不多,裸机100年
    发表于 05-13 07:27

    STM32G031k8t6串口发送为什么会进入硬件中断?

    STM32G031k8t6串口发送进入硬件中断
    发表于 03-13 07:59

    物通博联485转换网关:实现设备485串口数据转换为Modbus TCP协议

    随着工业自动化技术的不断发展,各种通信协议和接口标准在工业设备中的应用越来越广泛。其中,485串口和Modbus TCP协议是两种常见的通信协议,广泛应用于各种工业自动化设备和系统。传统的485
    的头像 发表于 03-04 17:10 1442次阅读
    物通博联485转换网关:实现设备485<b class='flag-5'>串口</b>数据转换为Modbus TCP协议

    ZDP1440串口屏应用开发如何使用虚拟串口调试

    ZDP1440串口屏应用开发如何使用虚拟串口调试呢?本文将详细方法分享给大家。
    的头像 发表于 01-25 11:32 1616次阅读
    ZDP1440<b class='flag-5'>串口</b>屏应用开发如何使用虚拟<b class='flag-5'>串口</b>调试

    stm32串口接收中断触发原理

    配置串口接收中断使能:在初始化串口时,需要设置相应的控制寄存器来使能串口接收中断。这通常可以通过设置相应的标志位或使用特定的寄存器位来完成。
    发表于 01-17 15:42 7881次阅读
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b>接收中断触发原理

    什么是RS-232串口?消费级电脑通常没有232串口的主要原因

    什么是RS-232串口?消费级电脑通常没有232串口的主要原因  RS-232串口是一种标准的串行通信接口,用于在计算机和外部设备之间传输数据,目的是为计算机和外部设备之间提供可靠的数
    的头像 发表于 01-09 13:52 1062次阅读