常用开发工具简介

安装仿真器驱动

  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仍然在继续工作,数据仍然在传输。

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

STM32学习(二)相关推荐

  1. STM32学习二之搭建开发环境

    在实际开发之前我们都必须提前将相应的开发环境搭建好,而 STM32 的开发软件可以使用 IAR 或者 KEIL 等.本次 STM32 学习我选择使用 KEIL5 进行操作.以下是我的安装步骤 一.安装 ...

  2. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...

  3. STM32学习心得二十六:DAC数模转换实验

    记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...

  4. STM32学习笔记:FLASH读写之二

    因为关于STM32的Flash相关的知识点比较多,所以该内容的学习我们分为以下4个部分 1.RAM和ROM的一些基本概念 -- STM32学习笔记:FLASH读写之一 2.STM32的Flash寄存器 ...

  5. STM32学习心得二十四:内部温度传感器原理及实验

    记录一下,方便以后翻阅~ 主要内容: 1) STM32内部温度传感器概述: 2) 相关实验代码解读. 实验功能:系统启动后,实时将内部温度传感器的值传至串口助手上. 官方资料:<STM32中文参 ...

  6. STM32学习:按键控制LED

    STM32学习:按键控制LED 文章目录 前言 一.所用知识点复习 1.stm32工作模式(*注意上下拉输入的区别*) 2.按键抖动与常见按键接法 按键抖动: 按键消抖: 常见按键接法: 3.GPIO ...

  7. SimpleFOC移植STM32(二)—— 开环控制

    目录 注意事项 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.SimpleFOCShield V2.0.3方案 1.2.硬件连接 1.2.1.原理图 1.2.2. ...

  8. STM32学习心得十九:电容触摸按键实验及相关代码解读

    记录一下,方便以后翻阅~ 主要内容 1) 电容触摸按键原理: 2)部分实验代码解读. 实验内容 手触摸按键后,LED1灯翻转. 硬件原理图 上图,TPAD与STM_ADC用跳线帽相连,即TPAD与PA ...

  9. STM32学习笔记 | 引起电源和系统异常复位的原因

    关注+星标公众号,不错过精彩内容 每一块处理器都有复位的功能,不同处理器复位的类型可能有差异,引起复位的原因也可能有多种. STM32的复位功能非常强大,可通过软件.硬件和一些事件触发系统复位,而且通 ...

  10. 《STM32学习笔记》4——核心功能电路与编程(下)

    接上文,文中的图片,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.蜂鸣器驱动 1.蜂鸣器介绍 2.蜂鸣器电路 3.蜂鸣器程序 二. MIDI 音乐 ...

最新文章

  1. Java的继承多态的练习
  2. Power BI商业智能与业务分析的结合,让你在企业中脱颖而出
  3. SSH连接两台虚拟机、秘钥免密登录
  4. 全球500强企业人力资源管理之道
  5. Hibernate基本概念 (2)
  6. 关于DataFormWebPart中CreatedModifiedInfo信息的分开使用
  7. DataWhale组队-Pandas(下)缺失数据(打卡)
  8. 前端图片有时候能显示有时候不显示_web前端基础教程:两种数据存储思路
  9. C++友元函数、友元类与类模板
  10. ugui获取坐标_UGUI源码解析(六)Raycast
  11. GIT在WINDOWS/LINUX下载的源码,回车换行有差异
  12. 快速突破面试算法之图篇
  13. ABAP CLEAR REFRESH FREE 说明(刘欣)
  14. 【源码阅读 | 04】update-notifier 检查包更新
  15. 阿里巴巴数据挖掘笔试题摘
  16. 465端口发邮件php,在centos上打开端口465 for smtp的问题
  17. 数字通信——第一章 绪论
  18. @Component什么时候使用?
  19. ajax从服务器获取图片,JQuery ajax与POST从CORS启用服务器获取图像/ png
  20. python输入abcd输出对应的1234_python语法部分

热门文章

  1. 余三码和余三循环码的简单理解
  2. Harbor安装教程-完全根据官方文档2.6.0版本
  3. java String、Json对象与byte数组转换
  4. windows系统redis部署配置(IP/端口/服务)配置
  5. API数据接口该怎么对接
  6. Dubbo之默认协议dubbo
  7. OkHttpClient 源码分析 1(基于3.9.0的源码)
  8. r7000p装linux双系统,联想拯救者 刃7000台式机设置u盘启动(支持uefi/bios双启动)
  9. 电子游戏设计与制作 第六章 游戏中的人工智能
  10. 耦合式无线充电系统设计记录_3