学习STM32,该用哪款开发工具?

news2024/12/23 6:22:23

有很多初学者在问:学习STM32,该用哪款开发工具?

我首先说一下我的观点:

1.没有最好,只有适不适合,适合自己的才是最好的。

2.开发工具很多,各有各的特点,有优点肯定也有缺点。

本文就来说说当前STM32几种流行的开发环境优缺点。

1.Keil

Keil是一款老牌集成开发环境(IDE),而且是一款通用的IDE,兼容市面上大部分单片机。

官网地址:

https://www.keil.com/

图片

1.优点

  • 兼容市面上大部分MCU,换MCU可以不换IDE,不用再费时间熟悉开发环境。

  • 老牌IDE,教程比较多,容易找到各种问题的解决办法。

  • 基于Keil的软件工程很多,直接拿来就能用。

2.缺点

  • 界面不现代化,已被众多网友吐槽。

  • 目录结构不支持多级。

  • 编辑功能还有待改善。

  • 收费软件,但有部分Cortex-M0处理器可以免费使用。

Keil MDK用AC5编译器的编译速度相对较慢,Keil或将推出Keil Studio桌面版IDE,改善界面等诸多不足的地方。

推荐阅读:Keil系列教程

2.IAR

IAR同样是一款老牌集成开发环境,也是一款通用的IDE,兼容市面上大部分单片机。

官网地址:

https://www.iar.com/

图片

IAR优缺点和Keil类似,但编辑功能相对Keil更差。

1.优点

  • 兼容市面上大部分MCU,换MCU可以不换IDE。

  • 老牌IDE,教程比较多,容易找到各种问题的解决办法。

  • 基于IAR的软件工程很多,直接拿来就能用。

  • 目录结构可以多级。

2.缺点

  • 界面相比Keil更不现代化。

  • 编辑功能虽然最近有升级,但还有很多地方待改善。

  • 收费软件,可以试用14天或限定代码量大小。

前不久IAR升级改善编辑器,但还有很多地方待改善优化。

推荐阅读:IAR系列教程

3.STM32CubeIDE

STM32CubeIDE是ST公司针对STM32推出的一款集成开发环境。

官网地址:

https://www.st.com/stm32cubeide

图片

1.优点

  • ST官方软件,对STM32开发很友好。

  • 基于Eclipse工具链,界面更现代化。

  • 免费、免费、免费。

2.缺点

  • 仅限STM32,不支持其他厂家单片机。

  • 推出时间不长,存在一些bug。

  • 相对Keil更耗电脑CPU资源。

总体来说,STM32CubeIDE还是不错,不过有待完善。

推荐阅读:STM32CubeIDE下载安装,配置生成代码,在线调试

4.RT-Thread Studio

RT-Thread Studio和STM32CubeIDE类似,是一款专用的集成开发环境,且支持RT-Thread操作系统。

官网地址:

https://www.rt-thread.org/page/studio.html

图片

1.优点

  • 国产、中文,对国人很友好,简单易上手。

  • 基于Eclipse工具链,界面现代化。

  • 支持STM32大部分型号,此外还支持很多国产MCU。

  • 免费、免费、免费。

2.缺点

  • 推出时间不长,还有部分功能有待完善。

RT-Thread Studio是国产IDE中做的相对还不错的一款,国内很少有公司的IDE能做到这么大面积推广和使用,这里也有必要推荐一波。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1405106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL InnoDB 底层数据存储

InnoDB 页记录Page Directory记录迁移 页 是内存与磁盘交互的基本单位,16kb。 比如,查询的时候,并不是只从磁盘读取某条记录,而是记录所在的页 记录 记录的物理插入是随机的,就是在磁盘上的位置是无序的。但是在页中…

vscode连不上虚拟机,一直密码错误

最近在做毕设,但是vscode使用连接不上虚拟机,我以为是网络配置的问题,一顿查阅没找到原因。 后来查了一下ssh的日志,发现ssh有消息,但是也提示密码错误。 没找到密码配置格式什么的,经查看sshd配置文件发现…

easyexcel导入合并单元格解析(纵向合并,横向合并都支持)

1、按照开发逻辑,首先定义导入接收实体 package com.wang.test.excel;import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data;/***/ Data public class ExcelData1 {ExcelProperty(index 0)private String name;ExcelProperty(index 1)private S…

[C++] external “C“的作用和使用场景(案例)

C中extern "C"的作用是什么? 在 C 中,extern "C" 的作用是告诉编译器按照 C 语言的规范来处理函数名和变量名。这是因为 C 编译器会对函数名和变量名进行名称修饰(name mangling),以区分不同的函数和变量。而在 C 语言中…

企业需要的3种供应商管理解决方案

传统的 "管理和监控 "供应商管理解决方案是对时间和金钱的巨大浪费。准入、资格认证和细分等孤立的供应商管理流程无法与其他采购流程整合在一起。 此外,从多个来源获取和管理供应商数据的过程只会增加固有的复杂性。而且,人工操作往往会延误…

【Java IO】设计模式 (装饰者模式)

Java I/O 使用了装饰者模式来实现。 装饰者模式 请参考装饰者模式详解 装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component),具体组件的方法实现不需要依赖于其它对象,而装饰者组合了一个组件,这样它可以装饰其它装饰者…

Linux中文件IO(open、read、write、close函数使用)

介绍 什么是文件IO? 是操作系统提供的API接口函数。 POSIX接口 (了解) 注意:文件IO不提供缓冲机制 文件IO的API open close read read 文件描述符概念: 英文:缩写fd(file descriptor&#xff…

前端和后端之间的CORS 跨域和解决办法

什么是CORS(Cross-Origin Resource Sharing,跨源资源共享) 跨源资源共享(CORS,或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其他源&#xff0…

go 语言中 json.Unmarshal([]byte(jsonbuff), j) 字节切片得使用场景

struct_tag的使用 在上面的例子看到,我们根据结构体生成的json的key都是大写的,因为结构体名字在go语言中不大写的话,又没有访问权限,这种问题会影响到我们对json的key的名字,所以go官方给出了struct_tag的方法去修改…

【C++杂货铺】三分钟彻底搞懂如何使用C++中max函数

🌈前言 欢迎收看本期【C杂货铺】,这期内容,我们将围绕C中max函数部分进行讲解,包含了如何查询库函数,max函数的使用方法灯。如果你想学习C,或者刚学完C语言衔接C,那么这篇文章将会非常有效的帮助…

Redis学习——入门篇①

Redis学习——入门篇① 1、2:Redis入门概述3:Redis安装配置10 安装Redis-cli命令 4:Redis——十大数据类型11 redis数据类型12 命令查阅13 key常用命令介绍14 类型大小写和帮助命令15 String 命令(上)16 String 命令&a…

电脑摄像头设置在哪里?这3种打开方式要记好!

“我需要开一个视频会议,因此可能需要用到电脑的摄像头。但是我不知道我电脑的摄像头设置在哪里,有没有朋友可以告诉我一下呀?” 在日常办公时,我们可能经常要用到电脑摄像头。这不仅为用户提供了实时沟通的机会,还帮助…

机器学习实验报告——APRIORI算法

目录 一、算法介绍 1.1算法背景 1.2算法引入 1.3算法假设 1.4算法基本概念介绍 1.4.1关联规则 1.4.2支持度 1.4.3置信度 1.4.4频繁项集 1.4.5项目 1.4.6提升度 二、算法原理 2.1算法思想 2.2Apriori算法产生频繁项集 2.3Apriori算法的基本步骤 2.4关联分析 三、算法实现 3.1 Ap…

安卓自动化 | autox.js

介绍: 不需要Root权限 的 JavaScript 自动化软件 官方文档: http://doc.autoxjs.com/ 开发准备 安装Releases kkevsekk1/AutoX (github.com)到手机上 安装vscode插件 插件介绍中有中文的使用说明, 如何连接电脑 Usage Step 1 按 CtrlShiftP 或点击"查看"->&…

司铭宇老师:房地产中介培训班:房地产中介培训课程

房地产中介培训班:房地产中介培训课程 在竞争激烈的房地产市场中,成为一名杰出的中介代表不仅需要对行业有深刻的理解,还要具备一系列专业技能和高效的销售策略。我们的房地产中介培训课程旨在为有志于提升个人能力和业绩的中介人员提供全面、…

C++: vector

目录 1.vector的介绍 2.vector常用的接口 1.vector构造 2.迭代器iterator的使用 3.vector空间增长 4.vector的增删改查 3.vector模拟实现 如果在reverse时使用memcpy会怎么样? 1.vector的介绍 C中的vector是一个动态数组容器,可以存储任意类型的…

element plus表格的表头和内容居中

文章目录 需求分析 需求 对于 element-plus 中的 table 进行表头和内容的居中显示 分析 单列的表头和内容居中 &#xff1a; 在对应的那一列加上align“center” 即可 <el-table-column prop"name" label"商品名称" align"center" />…

Golang 中如何实现 Set

在Go编程中&#xff0c;数据结构的选择对解决问题至关重要。本文将探讨如何在 GO 中实现 set 和 bitset 两种数据结构&#xff0c;以及它们在Go中的应用场景。 Go 的数据结构 Go 内置的数据结构并不多。工作中&#xff0c;我们最常用的两种数据结构分别是 slice 和 map&#…

安防视频监控EasyCVR平台HTTP-FMP4播放协议在分屏播放时的性能优化

安防视频监控EasyCVR平台兼容性强&#xff0c;可支持的接入协议众多&#xff0c;包括国标GB28181、RTSP/Onvif、RTMP&#xff0c;以及厂家的私有协议与SDK&#xff0c;如&#xff1a;海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台能将接入的视频…

String对象的探究(new String到底创建了多少对象?)

String对象的探究 1. 前言&#xff08;String&#xff09;2. new String()到底创建了多少对象&#xff08;java8举例&#xff09;&#xff1f;2.1. new String("abc")&#xff1a;2/12.2. String str “a” "b" “c”&#xff1a;12.3. String abc &quo…