当前位置: 首页 > news >正文

STM32搭建开发环境

常用开发工具简介

集成开发环境

  • MDK:全名RealViewMDK,是Keil公司(已被ARM收购的)一款集成开发环境,界面美观,简单易用,是STM32最常用的集成开发环境
  • EWARM:IAR公司的一款集成开发环境,支持STM32开发,对比MDK,IAR的使用人数少一些,用惯IAR的朋友可以选择这款软件开发STM32

在这里插入图片描述

在这里插入图片描述
MDK安装=MDK软件安装+器件支持包

DAP仿真器(CMSIS-DAP Debugger),DAP仿真器在MDK下是免驱动的(无需安装驱动),即插即用,非常方便。

CH340 USB虚拟串口驱动

安装CH340 USB虚拟串口驱动,以便我们使用电脑通过USB和STM32进行串口通信。
开发板使用的USB虚拟串口芯片是CH340C

在驱动安装成功之后,将开发板的USB_UART接口通过USB连接到电脑,此时电脑就会自动给其安装驱动了。

USB虚拟串口作用

  1. USB口当串口来使用
  2. 如果USB连接的是串口1,那么USB口还可以当做串口来下载程序
  3. 当USB供电口

在这里插入图片描述
① 是编译按钮,表示编译当前工程项目文件,如果之前已经编译过了,则只会编译有改动的文件。所以一般第一次会比较耗时间,后续因为只编译改动文件,从而大大缩短了编译时间。该按钮可以通过 F7 快捷键进行操作。
② 是重新编译当前工程所有文件按钮,工程代码较多时全部重新编译会耗费比较多的时间,建议少用。按①处的按钮,编译当前项目,在编译完成后,可以看到如图 4.1.6 所示的编译提示信息:
在这里插入图片描述
在这里插入图片描述
因此图 4.1.6 的提示信息表示:代码总大小(Porgram Size)为:FLASH 占用 5832 字节(Code + RO + RW),SRAM 占用 1928 字节(RW + ZI);成功创建了 Hex 文件(可执行文件,放在Output 目录下);编译 0 错误,0 警告;编译耗时 2 秒钟。

必须编译成功,才会生成Hex可执行文件,否则是不会有这个文件的。

串口下载程序

M3、M4、M7开发板支持串口下载程序,但是ATK-XISP.exe软件只支持下载到内部Flash。

STM32的ISP下载,常用串口1下载程序。

因为使用USB虚拟串口,所以实现得安装虚拟串口驱动
在这里插入图片描述

STM32启动模式(M3和M4)

通过BOOT0和BOOT1引脚设置启动模式(M3和M4)
在这里插入图片描述
在这里插入图片描述

串口一键下载电路原理

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

DAP下载硬件连接

在这里插入图片描述
在这里插入图片描述

  1. 选择使用 CMSIS-DAP Debugger 仿真器仿真调试代码。如果你使用的是其他仿真器,比如 STLINK、JLINK 等,请在这里选择对应的仿真器型号。
  2. Run to main()该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,会先执行startup_stm32f103xe.s文件的Reset_Handler,再跳到main函数。

在这里插入图片描述
还需要在Utilities选项卡里面设置下载时的目标编程器,直接勾选Use Debug Driver,即和调试一样,选择DAP给目标器件的Flash编程,然后点击Settings,进入Flash算法设置。

JTAG/SWD调试原理概述

Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。
内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。
在这里插入图片描述

F1系列可以通过AFIO_MAPR寄存器的SWJ_CFG[2:0]位来释放部分或者全部SWJ-DP引脚。

F4/F7/H7系列默认全部SWJ-DP引脚为复用功能并映射到复用功能0(AF0)。

在这里插入图片描述
在这里插入图片描述

相关文章:

STM32搭建开发环境

常用开发工具简介 集成开发环境 MDK:全名RealViewMDK,是Keil公司(已被ARM收购的)一款集成开发环境,界面美观,简单易用,是STM32最常用的集成开发环境EWARM:IAR公司的一款集成开发环…...

C#入门详解_01_课程简介、C#语言简介、开发环境和学习资料的准备

文章目录 1. 课程简介2. C#语言简介3.开发环境与学习资料 1. 课程简介 开设本课程的目的 传播C#开发的知识,让更多的人有机会接触到软件开发行业引导有兴趣或者想转行的朋友进入软件开发行业 课程内容 完整讲述C#语言在实际软件开发中的应用采用知识讲述加实例程序…...

C++服务器端开发(2):确定服务器框架

选择C服务器框架时,可以考虑: 并发性能:C的强项之一是其并发性能。选择一个具有高并发处理能力的服务器框架,可以更好地满足大量并发请求的需求。例如,libevent、Boost.Asio和CppServer都是具有良好并发性能的C服务器框…...

CGAL::2D Arrangements-5

5.Arrangement无界曲线 前几章中构建和操作的所有Arrangement都只由线段引起,线段尤其是有界曲线。这样的Arrangement总是具有一个包含所有其他Arrangement特征的unbounded face。在本节中,我们将解释如何构造无界曲线的Arrangement。为了简化说明&…...

登录+JS逆向进阶【过咪咕登录】(附带源码)

JS渗透之咪咕登录 每篇前言:咪咕登录参数对比 captcha参数enpassword参数搜索enpassword参数搜索J_RsaPsd参数setPublic函数encrypt加密函数运行时可能会遇到的问题此部分改写的最终形态JS代码:运行结果python编写脚本运行此JS代码:运行结果&…...

CTF秀 ctfshow WEB入门 web1-10 wp精讲

目录 web1_查看源码 web3_抓包 web4-9_目录文件 web10_cookie web1_查看源码 ctrlu 查看源码 web3_抓包 查看源码,无果 抓包,找到flag web4-9_目录文件 GitHub - maurosoria/dirsearch: Web path scanner 下载dirsearch工具扫一下就都出来了 web4-…...

centos安装inpanel

前置条件 安装python yum -y install python 安装 cd /usr/local git clone https://gitee.com/WangZhe168_admin/inpanel.git cd inpanel python install.py 安装过程需要设置账户 密码 端口号 我设置的是admin:admin 10050 使用 打开浏览器,输入 http://192.168.168.…...

聊聊PowerJob Worker的ServerAddress

序 本文主要研究一下PowerJob Worker的ServerAddress PowerJobAutoConfiguration tech/powerjob/worker/autoconfigure/PowerJobAutoConfiguration.java BeanConditionalOnMissingBeanpublic PowerJobSpringWorker initPowerJob(PowerJobProperties properties) {PowerJobPr…...

师傅带练|大数据人工智能在线实习项目特色

大数据人工智能八大在线实习项目: 某实习网站招聘信息采集与分析 股票价格形态聚类与收益分析 某平台网络入侵用户自动识别 某平台广东省区采购数据分析 产品订单的数据分析与需求预测 基于注意力机制的评论者满意度分析 基于锅炉工况实现…...

ant-design-vue表格嵌套子表格,实现子表格有数据才显示左侧加号图标

ant-design-vue表格嵌套子表格&#xff0c;实现子表格有数据才显示左侧加号图标 通过使用插槽的方式&#xff0c;以下为全部项目的代码&#xff0c;关键的代码就两块&#xff0c;看注释 <template><a-card><a-form class"kit_form" ref"formRef…...

浅谈垃圾回收、内存泄漏与闭包

什么是垃圾&#xff1f; 在js中&#xff0c;垃圾通常指的是不再被程序使用的内存或对象。也就是说&#xff0c;垃圾是指程序中分配的内存空间或对象&#xff0c;但不再被程序使用或无法被访问到的内容 function createIncrease() {const doms new Array(100000).fill(0).map((…...

2 月 7 日算法练习- 数据结构-树状数组

树状数组 lowbit 在学习树状数组之前&#xff0c;我们需要了解lowbit操作&#xff0c;这是一种位运算操作&#xff0c;用于计算出数字的二进制表达中的最低位的1以及后面所有的0。 写法很简单&#xff1a; int lowbit&#xff08;int x&#xff09;&#xff5b;return x &am…...

[AIGC] 开源流程引擎哪个好,如何选型?

开源流程引擎是指一种自动化的工作流解决方案&#xff0c;它可以帮助你管理和协调你的业务流程和决策。但是&#xff0c;在开源世界里&#xff0c;有许多不同的流程引擎可以选择。因此&#xff0c;如何选择适合你的开源流程引擎&#xff0c;是一个具有挑战性和价值的话题。 文章…...

服务器使用过程中遇到常见故障及解决方案(包括蓝屏死机、无法删除的文件如何清理、网络卡、服务器连接不上等)

互联网时代&#xff0c;服务器的安全性和稳定性尤为重要&#xff0c;支撑着整个互联网行业的信息和数据安全。最近经常有客户咨询服务器的日常故障排除方法。由于服务器复杂的硬件结构和繁琐的运行原理&#xff0c;经常会出现这样那样的问题&#xff0c;有时即使是最小的问题也…...

【推荐算法】userid是否需要建模

看到一个din的源码&#xff0c;将userid也构建了emb table。 于是调研了一下。即推荐算法需要建模userid吗&#xff1f; 深度学习推荐算法中user-id和item-id是否需要放入模型中作为特征进行训练呢&#xff1f; 深度学习推荐算法中user-id和item-id是否需要放入模型中作为特…...

图解支付-金融级密钥管理系统:构建支付系统的安全基石

经常在网上看到某某公司几千万的个人敏感信息被泄露&#xff0c;这要是放在持牌的支付公司&#xff0c;可能就是一个非常大的麻烦&#xff0c;不但会失去用户的信任&#xff0c;而且可能会被吊销牌照。而现实情况是很多公司的技术研发人员并没有足够深的安全架构经验来设计一套…...

新概念英语第二册(58)

【New words and expressions】生词和短语&#xff08;16&#xff09; blessing n. 福分&#xff0c;福气 disguise n. 伪装 tiny adj. 极小的 possess v. 拥有 cursed …...

java和javascript的区别和联系

Java和JavaScript是两种非常流行的编程语言&#xff0c;尽管它们的名称相似&#xff0c;但实际上它们在设计、用途和运行环境等方面有很大的不同。以下是Java和JavaScript之间的主要区别和联系&#xff1a; 区别 设计目的和用途&#xff1a; Java 是一种通用的、面向对象的编程…...

uniapp中配置开发环境和生产环境

uniapp在开发的时候&#xff0c;可以配置多种环境&#xff0c;用于自动切换IP地址&#xff0c;用HBuilder X直接运行的就是开发环境&#xff0c;用HBuilder X发布出来的&#xff0c;就是生产环境。 1.使用HBuilder X创建原生的uniapp程序 选择vue3 2.什么都不改&#xff0c;就…...

prometheus之mysqld_exporter部署

mysql_exporter部署 下载解压压缩包 mkdir /opt/mysqld_exporter/ cd /opt/mysqld_exporter/ # 修改为自己的软件下载地址 wget http://soft.download/soft/linux/prometheus/mysqld_exporter/mysqld_exporter-0.14.0.linux-amd64.tar.gz tar -zxvf mysqld_exporter-0.14.0.…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...