Linux/Windows配置stm32免费开发环境详细流程
Linux/Windows配置stm32免费开发环境详细流程
系统:linux mint 18.3 xfce,windows10
stm32开发板:正点原子mini板(stm32f103rc)
烧写器:stlink v2
如果是JLINK的可以参考这篇
需要软件:
链接:https://pan.baidu.com/s/1nxgh1VF 密码:rvzu
2018/4/1更新
系统:manjaro xfce 64bit
stm32型号:f407vet6
烧写器:stlink v2
基于arch Linux的manjaro安装软件更加简单方便,步骤和下列初版教程一样,为了运行stm32cubemx和sw4stm32,需要安装jdk或者jre环境,我自己把两个都安装上了,在manjaro的软件包管理器搜索安装,如下图
下载安装stm32cubemx和sw4stm32下面有介绍,这里就介绍一下manjaro下安装stlink和openocd的教程,非常简单,终端执行
$ yaourt stlink
- 1
和
$ yaourt openocd
- 1
前提是已经安装了AUR软件包管理器yaourt
,其实在安装sw4stm32的时候就会提示安装stlink驱动的,应该那时就已经安装了stlink驱动了,为了确保顺利重新安装了一遍。
在win系统下下载安装上面两个软件很简单,但是记得要先安装java运行环境,可以前往java官网下载,相关教程自行百度。
下面主要介绍Linux环境下的配置:
(1) STM32CubeMX(4.24.0) ,STM32CUbeF1
第一个是配置stm32并且生成代码的软件,下载来后里面有win,linux两平台的软件,双击linux文件安装。第二个stm32f1系列的软件包,使用STM32CubeMX需要用到。
(2) sw4stm32 (目前最新2.4版本,2018/01/16)
ac6和st联合开发,基于eclipse,这个下载比较困难建议用axel多线程下载,博主是之前在win使用IDM下载的
注意:前面两个软件下载需要注册帐号,一个是ST帐号,一个是openstm32帐号,sw4stm32是run文件的,linux安装run文件教程请自行搜索。
使用另一台电脑安装前面两个软件的时候遇到了麻烦,新装的linux mint 18.3 xfce系统,没有java环境,经过测试,安装了Openjdk环境(直接下载的jdk失败了)
终端执行下面命令apt install openjdk-8*
安装和jdk8相关的软件(我自己没有安装最新的jdk9,有兴趣的伙伴可以试试)安装sw4stm32的时候还好,run文件很好安装,网上教程一大堆(主要是要有java环境),安装STM32CUbeMX的时候,之前在自己电脑是直接双击
SetupSTM32CubeMX-4.23.0.linux
,但是出现了下列错误报告无法执行文件 “SetupSTM32CubeMX-4.23.0.linux”.
执行子进程“/home/mint/App/en.stm32cubemx/SetupSTM32CubeMX-4.23.0.linux”失败(没有那个文件或目录).
查找一番后,通过下面的方法解决了问题
终端执行java -jar SetupSTM32CubeMX-4.23.0.exe
然后就可以安装了
安装完以后要想打开,进入安装目录,例如我的在/home/mint/App/stm32cubemx/
,目录下有个执行文件STM32CubeMX
,如果发现双击无法运行并且出现前面的错误提示,同样在终端执行
java -jar STM32CubeMX
- 1
为了避免每次都那么麻烦,可以在桌面建立一个启动器,启动命令为java -jar /home/mint/App/stm32cubemx/STM32CubeMX
(3) gcc-arm-none-eabi
ARM的编译链(参考链接:http://blog.csdn.net/zhengyangliu123/article/details/54783443)
关于这一点,我自己和网上的不太同,我在windows下面使用的是网站https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads 下载的工具链,也有linux64版本的,但是我自己电脑在安装完sw4stm32后能正常编译,所以不知道是本机就带有还是sw4stm32安装的时候带有,没有做深入探讨,希望大神告知,在后面要烧写的时候看到错误提示没有gdb,就使用apt安装了,在终端执行下面命令:
sudo apt install gdb-arm-none-eabi
看到apt推荐安装gcc-arm-none-eabi
,所以又安装上了
sudo apt install gcc-arm-none-eabi
我的操作应该是手动安装了ARM需要的编译工具链,而直接在上述网站下载的是已经提供好的整体的工具链,只要把安装目录写到环境变量让系统能找到软件目录即可。
(4) stlink
这是linux的stlink驱动,安装考链接:
ubuntu安装stlink 红联
Ubuntu安装STLINK CSDN博客
安装stlink的时候一定要先安装依赖,不然make的时候就会出错。
(5) openocd
下载后解压,解压后有INSTALL安装指导教程,就是linux一般软件的安装步骤,先./configure,然后make,然后sudo make install。
要先安装stlink驱动,不然在./configure 检查环境的时候会提升找不到相关驱动
执行完以上步骤,stm32在linux环境下的开发环境就已经完成了,如果过程中出现任何其他问题请自行百度。
下面介绍简单的基于STM32CubeMX的流水灯。
先介绍怎么打开STM32CubeMX,很简单,进去安装目录,例如我的安装目录如下图:
直接双击运行即可,或者命令行运行,如果觉的不方便的话可以在桌面建立启动器,在linux mint下非常简单,自定义图标也方便,在安装目录下的help子目录有个图标文件STM32CubeMX.ico,使用gimp将其转化为png格式就可以作图标使用了,ubuntu系统下好像比较麻烦。顺便吐槽一下,以前用ubuntu总是有莫名其妙的bug,后来知道mint是排名第一的linux系统,也是基于utuntu开发的,但是稳定性非常好,这样mint就相当于即有ubuntu的流行性,又有自身的稳定性,这一点也是我从win环境全面移植到linux的主要原因(不是双系统喔,其实并没有那么糟糕)。
sw4stm32安装后会自动在桌面上生成快捷方式。
(1)打开STM32CubeMX,点击左上角工具栏Help–>Install New Libraries,点击左下角From Local…,选择之前下载的STM32CUbeF1
(2) 在stm32cubemx下选择 New Project,选择芯片型号,正点原子Mini板是STM32F103RCT6,选择PA8和PD2,点击选择GPIO——Output,如下图:
(3)选择工具栏Project–>settings,设置按下图:
(4)点击Configuration,选择GPIO,更改PA8和PD2的Output level和最大输出速率
(5) 点击Project–>Generate Code,就会在之前设置的目录下生成如下目录:
(6) 生成工程后有这么些文件,然后用sw4stm32打开:
详细过程参考https://community.arm.com/cn/b/blog/posts/linux-stm32—nucleo-f429zi
选择 File->Import->General->Exist Project into Workspace
或者直接在刚刚生成的目录下,进去子目录SW4STM32/led2,双击.cproject
,会自动使用sw4stm32打开的
(7)先点击Build(锤子的标志),一般不会有问题,然后修改main.c代码如下图,实现跑马灯效果
(8) 点击run(绿色箭头的标志),烧写到stm32里面,实现预定效果
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【java】对jdbc操作结果简单的映射封装
1. 对jdbc做一个简单的封装,select可以返回一个javabean对象,而不是resultset。主要用了反射。这是我之前写的代码,做了简单的修改。 实现功能:a.对数据库的基本操作 增删改查 b.对查询的单条记录返回一个指定类型的javabean对象,利用java反射,jdbc ResultSet类和ResultSetMetaData类 c. 对查到的结果集返回一个List, 泛型 数据源:用到的 数据库连接池是我自己简单实现的一个连接池:【java】简单实现数据库连接池,主要为了后续实现事务的简单实现 用到的java知识 : 反射,泛型,jdbc import com.yeyeck.noob.ConnectionPollImpl; import com.yeyeck.noob.IConnectionPool; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.sq...
- 下一篇
Linux下几款C++程序中的内存泄露检查工具
Linux下几款C++程序中的内存泄露检查工具 Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++。最近用到STL中的List编程,为了检测写的代码是否会发现内存泄漏,了解了一下相关的知识。 所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括: 参见http://elinux.org/Memory_Debuggers 偶然发现的内存泄露检测工具比较 工具 描述 valgrind 一个强大开源的程序检测工具 mtrace GNU扩展, 用来跟踪malloc, mtrace为内存分配函数(malloc, realloc, memalign, free)安装hook函数 dmalloc 用于检查C/C++内存泄露(leak)的工具,即检查是否存在直到程序运行结束还没有释放的内存,以一个运行库的方式发布 memwatch 和dmalloc一样,它能检测未释放的内存、同一段内存被释放多次、位址存取错误及不当使用未分配之内存区域...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果