STM32学习(二)
创始人
2025-05-29 17:48:32

常用开发工具简介

在这里插入图片描述

安装仿真器驱动

  1. DAP仿真器免驱
  2. ST LINK仿真器驱动安装方法:(A盘)\6,软件资料\1,软件\5,其他软件\ST LINK驱动及教程

为什么要安装CH340 USB串口驱动?
在这里插入图片描述
串口需要共地,设备A的发送引脚和设备B的接收引脚互连。
RXD-PA9,TXD-PA10通过跳线帽连接到CH340(USB/串口转换电路)

USB虚拟串口作用

  1. USB口当串口来使用。
  2. 如果USB连接的是串口1,那么USB口还可以当做串口来下载程序。(STM32中,只有串口1可以下载程序)。(串口1是PA9和PA10)
  3. 当USB供电口。

STM32初体验

MDK5编译例程
在这里插入图片描述

  • 全局编译所需时间较长
  • 部分编译在第一次编译时与全局编译是一样的
  • 工程文件已经编译过,修改了一些文件,部分编译仅编译修改过的文件

编译结果看:Build Output窗口
在这里插入图片描述

  • linking:链接后才能生成可执行文件

  • Program Size:程序大小,也可通过查看.map文件得到

  • FromELF: creating hex file…:创建hex文件当且仅当工程为0错误才能创建

  • Build Time Elapsed: 00:00:05编译时间
    在这里插入图片描述

  • code:代码,占用Flash5062个字节

  • RO-data:只读数据,一般是指const修饰的数据,也是在Flash中

  • RW-data:初值为非0的可读可写数据,初值存放到Flash,修改后存放在SRAM

  • ZI-data:初值为0的可读可写数据,只占用SRAM

  • Flash:占用5620字节(前三个相加)

  • SRAM:占用1928字节(后两个相加)

串口下载程序

STM32的ISP(In System Programming在线系统编程)下载,常用串口1下载程序。
因为使用USB虚拟串口,所以事先安装CH340 USB虚拟串口驱动

在这里插入图片描述
在这里插入图片描述
STM32启动模式
在这里插入图片描述
ISP下载程序一般步骤:

  1. BOOT0接高电平,BOOT1接低电平
  2. 按复位键

程序执行一般步骤:

  1. BOOT0接低电平,BOOT1接任意
  2. 按复位键

在这里插入图片描述

一键下载电路,是利用串口的DTR和RTS信号,分别控制STM32的复位和BOOT0引脚,配合FlyMcu软件,设置:DTR的低电平复位,RTS高电平进BootLoader,这样, BOOT0和STM32的复位引脚,完全由下载软件自动控制,从而实现一键下载。

DAP下载程序

在这里插入图片描述
JLINK下载的时候,必须给板子先供电:USB或者外接电源都可

JTAG/SWD调试原理概述

Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,可以查询内核的内部状态(内核)和系统的外部状态(外设)。完成查询后,可恢复程序执行。
在这里插入图片描述
在这里插入图片描述
F1系列可以通过AF10——MAPR寄存器的SWJ_CFG[2:0]位来释放部分或者全部SWJ-DP引脚。

要想设置SW模式,就把复用重映射和调试I/O配置寄存器(AFIO_MAPR)
复位值:0x0000 0000
在这里插入图片描述
所以默认情况下,位26:24为000,既支持JTAG接口也支持SW接口。
如果想仅支持SWD接口,就将位SWJ_CFG[2:0]配置为010。

基础执行控制按钮介绍

在这里插入图片描述

  • 插入/移除断点
  • 使能/失能断点
  • 在当前目标失能所有断点
  • 移除所有断点

在这里插入图片描述

内核寄存器
在这里插入图片描述
反汇编窗口
在这里插入图片描述
可以通过汇编语言的方式来看代码

命令行窗口
在这里插入图片描述
堆栈窗口
在这里插入图片描述
在这里插入图片描述
蓝色小三角显示当前鼠标所在行
在这里插入图片描述

黄色小三角显示即将要执行的程序的那一行

查看程序段/函数执行时间
在这里插入图片描述
工具栏常用窗口介绍
在这里插入图片描述
Call Stack窗口(调用栈窗口):查看函数调用关系&局部变量。
在这里插入图片描述
在这里插入图片描述
函数名|首地址|类型(范数是返回类型)
变量名|变量值

Watch窗口:查看函数首地址&变量值,Watch窗口:设置全局变量在被读或写后自动停止运行
在这里插入图片描述
在这里插入图片描述
Memory窗口:内存查看窗口

M3/M4/M7内核是小端模式,内存的值得倒着读。
在这里插入图片描述
所以需要先读00再读0F,值为0x000F

Peripheral窗口:查看寄存器的值——既可以是内核寄存器也可以是外设寄存器
在这里插入图片描述
调试时,使用该功能可以确定配置寄存器是否有问题

仿真时需要注意的点

1,仿真时,使用MDK的Level 0等级优化
在这里插入图片描述

调试停止在断点处时,只是内核停止,外设会继续运行
例如:DMA搬运数据,当断点停止时,DMA仍然在继续工作,数据仍然在传输。

断点的设置要有时间观念,考虑是否会打断正常通信
例如,主从机需要在有限时间响应,但断点打在响应之前,就可能会影响通信。

相关内容

热门资讯

Opentss代码测试 这是个多方门限签名库,使用rust实现。 代码包含两个功能,秘密共享密钥...
【id:14】【20分】C. ... 题目描述 编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义...
无需公网IP,远程连接SQL ... 文章目录1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL...
WuThreat身份安全云-T... 漏洞名称:CairoSVG 文件服务器端请求伪造 漏洞级别:严重 漏洞编号:CVE-2023-275...
Postgresql源码(10... 1 子事务控制语句分析 1.1 执行savepoint 执行函数: 【立即执行】→De...
python@日期和时间@da... 文章目录python datetimerelativedeltademo`timedelta...
数据库--进阶版-11--SQ... 1.插入数据 ·insert优化: 例如要插入下面这些 insert into tb_...
C语言—文件操作 为什么使用文件使用文件可以直接将数据存放到电脑硬盘上,做到数据的持久化什么是文件硬盘上...
【Zabbix_6.x 第三章... 文章目录👹 关于作者Zabbix 系列文章目录第三章 监控任意主机一、解决第二章登录...
python爬虫可以爬什么 Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析...
组态王与200SMART之间无... 在实际的工业场合应用中,人机界面跟PLC配套使用是比较常见的现场“CP组合”ÿ...
KaiwuDB 荣获第三届 I... 3月17日,由中国某部电子化标准研究院、苏州金融科技协会、中国计算机用户协会指导&#x...
上海人工智能企业CIMCAI智... 上海人工智能企业CIMCAI智能港口自动化港口数字化码头智慧港航,成熟终端智慧港航人工...
红米note10 pro机型解... 前言。操作解除锁类案例只限于自己的机型, 因手机号长期不用或者忘记密码导致账号锁出现的...
9、Cascaded Diff... 简介 主页:https://cascaded-diffusion.github.io/...
异核通信框架(1)——SMP和... 0.前言         我是菜鸡,很久没有发表文章了。老样子,今天推荐...
Leetcode.2048 下... 题目链接 Leetcode.2048 下一个更大的数值平衡数 Rating : 17...
GBASE南大通用第二届校园大... 第二届校园大使在本周正式集结完毕啦! 全国一共有27所高校近50余名学生报名参加。 各...
Blender Apps?20... 2023 年对 Blender 来说将会是很有趣的一年,除了努力保持核心功能稳定和不断...
Python数据结构与算法(p... 学习材料清华大学博士讲解Python数据结构与算法 B站:https://www.bi...
Docker安装使用Nacos Docker安装使用Nacos1 参考2 Nacos版本2.1 访问地址3 Docker部署Naco...
Spring Boot 接口统... 需求 需求如题,想给一个 spring boot 项目的所有请求路径添加统一前缀&#x...
Boeing MQ-28 Gh... Boeing MQ-28 Ghost Bat作为五代机忠诚僚机的开山之作,今天我们来一...
线性动态规划问题 文章目录1. 三角形中最小路径之和2. 最长递增子序列3. 最长公共子序列 1. 三角形中最小路径之...
携手共赢!菊风荣获三基同创“2... 近年来智能手表市场发展势头迅猛,为满足用户多样化的应用场景,对于音视频能...
CentOS8提高篇3:Cen... 1. 准备工作(需要配置epel, rpmfusion源); 配置e...
计算机组成原理(7)--哈工大 程序中断方式中断的概念I/O中断的产生CPU和打印机部分并行工作程序中断方式的接口电路配置中断请求触...
Amazon S3 客户端:T... TntDrive 是适用于 Windows 的新 Amazon S3 客户端。使用 TntDrive...
java8 jdk1.8在wi... 一、软件下载 1、从网盘获取 java8安装包 2、或者从官网获取(需要提前注册ora...
【 Deep-Shallow ... A Deep-Shallow Fusion Network with Multi-Detail Ex...