Ubuntu 搭建 STM32 开发环境

article/2025/10/25 13:07:39

零、背景

从 GitHub 上下载了一个 STM32 的工程(是关于F1无人竞速车底盘电控的),打开之后发现不是使用 keil 开发的,顿时就蒙圈了,感觉冒犯到了自己的知识盲区。通过询问师兄以及网上查找资料,发现下载下来的这个工程是在 Linux 平台上创建的,因此通过网上查找资料,详细总结了如下:使用 Ubuntu 搭建 STM32 开发环境的 “配环境” 详细步骤,以后再要配环境的话,不至于再重新百度一遍。

一、对于开发 STM32 来说,Ubuntu 的环境配置

1.1 安装 gcc-arm-nano-eabi

这一步的本质就是:安装运行在x86平台的gcc编译器,而这个编译器编译出的代码是要在ARM平台(stm32)上跑的,因此被称为交叉编译器。 因为要编译运行在STM32上的代码,因此这个gcc要和“目标代码运行在x86机器上的gcc”的名字有所区分,取名为 arm-none-eabi-gcc
进入 arm Developer 官网,鼠标滚轮下拉,点击下载压缩包:
在这里插入图片描述
等待下载,大概要花一个小时,下载下来的压缩包长这样:

在这里插入图片描述
解压并重命名文件夹名后长这样:
在这里插入图片描述
从终端进入文件夹查看文件夹内容,并进入bin文件夹查看内容:
在这里插入图片描述
将此bin路径添加到环境变量中:

gedit ~/.bashrc

~/.bashrc文件末尾添加如下一行语句即可:
在这里插入图片描述
接着保存退出,并在终端执行:

source ~/.bashrc

重启终端,输入arm-none-并按下两次Tab键,若能像下图自动补齐,则说明环境变量添加成功:

在这里插入图片描述

1.2 对 "1.1 安装 gcc-arm-nano-eabi"的补充说明_2020.8.25

首先亮明观点:使用1.1的方法安装 gcc-arm-nano-eabi,在后面使用make命令编译的时候会报错,报错内容如下:
/bin/sh: 1: arm-none-eabi-gcc: Exect format error
图片描述

几经百度无果后(断断续续大概卡了两天),开始怀疑是不是应该选择安装下图中的3 gcc-arm-none-eabi-10.3-2021.10-x86-linux.tar.bz2
在这里插入图片描述
于是真的按 “1.1 安装 gcc-arm-nano-eabi” 的步骤重新安装了一遍 x89_64的 gcc-arm-nano-eabi。再次使用make命令编译工程时,依然报错,(而且报错内容是一样的,费解,希望能在评论区得到热心解答)如下图:
在这里插入图片描述

既然都写到这儿了,那我肯定是解决了使用make编译时报错的问题:使用命令行安装 gcc-arm-nano-eabi:

sudo apt-get install gcc-arm-none-eabi

问题解决了!编译再也不报错了。
Ubuntu 1804 默认的arm-none-eabi-gcc编译器的版本为 6.3.1
在这里插入图片描述
Ubuntu16.04下 gcc 版本号:gcc version 4.9.3 20150529。因此自动安装的编译器版本号是固定的。实在想手动安装、指定编译器版本号的话,可以参考这个链接:https://blog.csdn.net/qq_20016593/article/details/125343260

1.2 安装 gcc

sudo apt-get install gcc

我的虚拟机已经安装过了。
使用gcc -v查看是否安装成功:
在这里插入图片描述

1.3 安装 make

sudo apt-get install make

我的虚拟机已经安装过了。

1.4 安装 openocd

sudo apt-get install openocd

这个倒是没安装过,安装了一遍。
使用openocd -v查看版本信息,以确认安装成功:
在这里插入图片描述

Tips:原来 openocd 是 open on-chip debugger 的缩写。

二、软件安装

所需软件:

  • STM32CubeMx
  • VSCode
  • GNU Arm Embedded Toolchain
  • Mingw-w64
  • make
  • openocd

2.1 STM32CubeMx 安装

进入 ST官网 下拉网页,找到Linux版本的 CubeMX ,点击下载软件:

注:需要登陆才能下载,没有账号的话,邮箱注册一下很快的,由于经常要和ST打交道,因此还是设置一个正经密码的好。

在这里插入图片描述
下载下来的压缩包长这样:
在这里插入图片描述
解压之后长这样:
在这里插入图片描述
渐入解压之后的文件夹,双击安装:(Linux 下这种“双击安装”的方式不多见,珍惜机会)
在这里插入图片描述
双击安装包后弹出:(照例一路next)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待安装完成:
在这里插入图片描述
然后 Next :
在这里插入图片描述
完成(Done)
在这里插入图片描述

2.2 设置 STM32CubeMx 的启动方法

方法一: 直接在安装目录启动
图形界面双击启动:
在这里插入图片描述
命令行进入安装目录启动:
在这里插入图片描述
方法二: 设置别名,在终端中方便地启动

修改.bashrc文件

gedit  ~/.bashrc

在文件末尾增加如下内容:

if [ -x ~/STM32CubeMX/STM32CubeMX ]; thenalias stm32CubeMX='~/STM32CubeMX/STM32CubeMX'
fi

保存退出,终端执行:

source  ~/.bashrc

然后就可以在终端使用stm32CubeMX打开 STM32CubeMX 了,像在终端使用code打开 VSCode 一样方便。

2.3 VSCode 安装

进入VSCode官网 https://code.visualstudio.com/Download,选择.deb下载包:
在这里插入图片描述
安装包下载下来长这样:
在这里插入图片描述
然后在安装包所在目录打开终端,执行如下一条命令完成安装:

sudo dpkg -i code_1.69.2-1658162013_amd64.deb

2.4 VSCode 开发 STM32 所必须的插件

ARM Assembly :汇编代码高亮显示
在这里插入图片描述
Cortex-Debug:用于提供调试配置
在这里插入图片描述
C/C++:用于提供高亮显示和代码补全
在这里插入图片描述

三、基于以上内容完成一个点灯程序,并下载验证

1、打开CubeMX,新建一个工程:
在这里插入图片描述
在这里插入图片描述
开始配置的界面:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/66S7tLml.shtml

相关文章

VSCode 搭建 STM32开发环境

首先附上一张VS Code图.一直都喜欢这种,黑色主题感觉高大上。。 因为公司准备上市,所以不能使用Keil开发了。在这之前有在Linux上开发过STM32。于是想着在Windows上也搭建一个。这样方便跨平台。 于是决定搭建一个用VSCode 开源 arm 工具链 OpenOCD开…

STM32开发 -- 开发环境搭建

如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/79472991 TBOX开发用到的芯片 GD32F105 ,现在需要搭建一下开发环境。 一、Keil下载安装 首先需要下载安装软件Keil。 参看:Keil uVision4使用总结 参看:keil专栏 参看:keil4 与 keil5 安装 需要…

STM32单片机开发环境搭建

学习过程中不能追求大而全,掌握大部分就可以。 注册ST账号 进入ST官网:意法半导体STM | STM32/STM8微控制器 | MCU单片机 点击注册: 进入注册界面: 登录: 账号:18487123540 密码:1398809794…

stm32之keil开发环境搭建

只要按照下面的一步步来,绝对能从0开始建立一个STM32工程。不仅包括工程建立过程,还有Jlink设置方法。本文使用芯片为STM32F103CB。 1 下载stm32F10x的官方库 http://www.st.com/web/en/catalog/tools/PF257890 2 新建工程 工程名设为stm32_demo&#…

mac下搭建stm32开发环境

一、STM32CubeMX 1. java环境 直接使用brew安装openjdk 8: brew install openjdk@8配置jdk环境: sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk /usr/libexec/java_home配置完成后检查java环境: java -…

linux下STM32开发环境搭建

目录 参考: 前言: 安装 JAVA 环境 安装STM32CUBEMX 获取gcc-arm工具链 编译STM32代码 安装openocd 安装GDB调试工具 参考: JAVA环境下载:Java SE Runtime Environment STM32CUBEMX下载:STM32CUBEMX gcc-…

STM32开发环境搭建工程创建(嵌入式学习)

STM32开发环境搭建&工程创建 1. 开发环境搭建1.1 STM32CubeMX简介安装 1.2 Keil5简介安装 1.3 ST_LINK简介安装 2. 创建STM32工程 1. 开发环境搭建 1.1 STM32CubeMX 简介 STM32CubeMX是STMicroelectronics公司提供的一款集成开发环境(IDE)工具&…

搭建STM32的开发环境

如果对单片机进行开发,我们必须要有一个开发工具,用这个工具来进行编写我们的代码;在这之前,我们需要安装开发环境和固件的下载,废话少说,我们直接来安装我们的开发环境吧! 第一步 打开我们的 …

手把手教你 VSCode搭建STM32开发环境

VSCode搭建STM32开发环境 摘要1、安装VScode2、安装C/C插件3、安装Keil Assistant插件4、用vscode打开keil工程5、编译、下载程序5、常用操作reference 摘要 作为一个51单片机或STM32单片机的使用者,keil一直是我们的必备的一款工具之一。但keil的一些问题也一直存…

用 VS Code 搭建 STM32 开发环境。

众所周知,Keil是一款收费软件,虽然可以Po解使用,但很多公司还是有点害怕,想必有不少读者都收到过**函。 之前,开发单片机项目,可以说 Keil 是最佳选择之一,但VSCode横空问世之后,这种…

一、stm32开发环境搭建

1、MDK软件安装 mdk就是我们所熟知的keil软件,因为我是跟着正点原子后面学习32的,也是买了他们家的板子,正点原子资料很全很多,其中很多软件驱动都可以根据下面连接进行相应的下载。 正点原子资料下载中心 - 正点原子资料下载中…

STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库

目录 1.简介-初识STM32 2.开发环境 2.1使用Keil5 2.2使用STM32CubeMX 3.标准库与HAL库区别 4.推挽输出与开漏输出 1.简介-初识STM32 什么是单片机? 单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能…

STM32从零开始 - 第一章:开发环境STM32Cube套件

概述 STM32的开发环境并不唯一。 如果你习惯KEIL开发环境,可以用KEIL环境来开发,虽然代码编辑不太方便,但调试跟踪非常方便。 如果你更熟悉gcc/makefile,则可以自己写makefile来搭建自己的脚本编译环境。 代码编辑器个人还是推…

STM32系列 (一)开发环境的搭建

STM32简介 STM32是意法半导体(ST)推出一款32位的单片机。STM32具有超低的价格、超多的外设、丰富的型号、优异的实时性、极低的开发成本等优势。STM32凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多32位单片机中脱颖而…

STM32几种流行开发环境的优缺点

有很多初学者在问:学习STM32,该用哪款开发工具? 我首先说一下我的观点: 1.没有最好,只有适不适合,适合自己的才是最好的。 2.开发工具很多,各有各的特点,有优点肯定也有缺点。 今…

STM32入门指南(0)—配置开发环境

STM32入门指南(0)—配置开发环境 文章目录 STM32入门指南(0)—配置开发环境开发环境介绍STM32CubeMX下载安装安装Java安装STM32CubeMX安装软件开发包 Keil uVision5下载安装解锁更多内容 开发环境介绍 这一系列的教程使用的都是 …

用html和CSS做个人简历

很多刚学web的同学第一个项目应该都是做一个个人简历,这个是查了多方资料的刚刚写出来的一个简历,所以可能会参考网上的一些代码,兄弟们拿去复制就可以。里面有的注释可能不太对劲,不要太在意,毕竟我也是一个刚学一周的…

简历模板推荐

简历模板推荐 话不多说,直接上干货。 今天给大家推荐几个还不错的简历模板网站。 木及简历(推荐👍) : 免费MarkDown在线简历-专业简历制作工具-木及简历 。 知页简历:名企精英都在用的专业简历 typorama…

HTML5,CSS制作个人简历

先建立index页面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>个人简历制作</title> …

HTML5+CSS——个人在线简历

期末作品用DW软件结合HTML和css来制作一个在线简历&#xff0c;成果图如下&#xff1a; HTML代码如下&#xff1a;主要使用表格来实现页面布局&#xff0c;页面中使用了文本溢出隐藏效果、点击相应的链接可以跳转到另一个网页等。 <!DOCTYPE html> <html> <hea…