打印
[应用相关]

ubuntu下stm32开发环境的搭建(从零到点灯)

[复制链接]
1619|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在ubuntu下搭建stm32开发环境
从零开始到点亮小灯
一直用的MDK开发stm32,也在用ubuntu,了解到linux下也能开发arm后就一直想试试在ubuntu下写一写stm32的代码。前几天折腾了一番,终于成功把点亮小灯的程序在stm32上跑起来了。在这里记录下整个过程。

使用特权

评论回复
沙发
自动化陈稳|  楼主 | 2021-9-28 23:40 | 只看该作者
1、思路
这里有篇教程Ubuntu下使用Makefile开发STM32,教程里教你一步一步搭建开发环境。总体思路是使用makefile将stm32的库文件代码和用户代码组织起来,makefile告诉编译器该怎么编译这些文件,编译链接工作gcc-arm来干,最后使用st-link将生成的二进制文件下载到stm32上。
我也采用相同的思路,只是因为我不会makefile,所以这部分工作就交给STM32cubeMX来干。

使用特权

评论回复
板凳
自动化陈稳|  楼主 | 2021-9-28 23:41 | 只看该作者
2、使用的工具
软件
串口助手:minicom或者cutecom
编译器: gcc-arm-none-eabi
编译工具:cmake
下载工具:STM32cubeProgrammer或st-link
代码配置工具:STM32cubeMX
依赖库
硬件平台
野火stm32f103vet6开发板(野火指南者)
stlink

使用特权

评论回复
地板
自动化陈稳|  楼主 | 2021-9-28 23:42 | 只看该作者
本帖最后由 自动化陈稳 于 2021-9-28 23:59 编辑

3、配置过程
3.1 安装串口调试助手
我装了两个串口助手,minicom和cutecom,minicom是基于命令行的,而cute是做成图形界面的我在搜minicom的使用教程时偶然看到了cutecom,索性就装了,cutecom使用起来比较简单,跟windows下的串口助手一样。
minicom
sudo apt-get install minicom
minicom的使用教程看这里-----minicom安装与使用(https://bbs.21ic.com/icview-3167584-1-1.html)

使用特权

评论回复
5
自动化陈稳|  楼主 | 2021-9-28 23:43 | 只看该作者
本帖最后由 自动化陈稳 于 2021-9-29 22:06 编辑

3.2 安装交叉编译器gcc-arm
记一次在64位Ubuntu 16.04下成功安装arm-none-eabi-gcc交叉编译器的过程(https://bbs.21ic.com/icview-3167854-1-1.html)

使用特权

评论回复
6
自动化陈稳|  楼主 | 2021-9-28 23:43 | 只看该作者
本帖最后由 自动化陈稳 于 2021-9-29 22:05 编辑

3.3 安装st-link驱动
Ubuntu16.04中安装stlink驱动(https://bbs.21ic.com/icview-3167858-1-1.html)
这里还可以选择ST官方出的STM32cubeProgrammer下载工具,据说十分强大。直接去官网下载安装包安装就成,不过它要求Oracle JRE或者open JFX环境,ubuntu默认是openJDK,我就是这个java环境卡了好久没搞定才用的stlink,如果有谁有办法搞定的话请务必给我留言,不胜感激。

使用特权

评论回复
7
自动化陈稳|  楼主 | 2021-9-28 23:44 | 只看该作者
3.4 安装cmake工具
sudo apt-get install cmake

使用特权

评论回复
8
自动化陈稳|  楼主 | 2021-9-28 23:45 | 只看该作者
3.5安装STM32cubeMX
STM32cubeMX的安装也十分简单,到ST官网下载对应安装包安装就行了。

使用特权

评论回复
9
自动化陈稳|  楼主 | 2021-9-28 23:45 | 只看该作者
4、生成代码
打开STM32cubeMX,选择芯片型号并配置,输出文件选择makefile。第一次运行会下载固件库,下载花的时间比较长。

使用特权

评论回复
10
自动化陈稳|  楼主 | 2021-9-28 23:46 | 只看该作者
然后在main.c文件里写入LED闪烁的程序
while (1)
98   {                                                                        
99     /* USER CODE END WHILE */
100
101     /* USER CODE BEGIN 3 */
102     /* USER CODE BEGIN 3 */
103       HAL_Delay(1000);
104       HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
105   }
106   /* USER CODE END 3 */

使用特权

评论回复
11
自动化陈稳|  楼主 | 2021-9-28 23:47 | 只看该作者
5、编译
生成代码后,我们进入到工程所在的文件夹,打开终端
make
编译完成后会多出一个build文件夹,编译的中间文件和生成的二进制文件.hex都在这

使用特权

评论回复
12
自动化陈稳|  楼主 | 2021-9-28 23:48 | 只看该作者
6、下载
打开stlink GUI,连接好stlink和开发板,点击连接,等到连接好后打开上一步生成的.hex文件,然后点击下载就可以了

使用特权

评论回复
13
自动化陈稳|  楼主 | 2021-9-28 23:48 | 只看该作者
*至此我们就完成了从零开始搭建开发环境到下载程序运行的全部步骤

使用特权

评论回复
14
kyzhd| | 2021-9-29 09:42 | 只看该作者
感觉还是在Win下开发比较顺手 。

使用特权

评论回复
15
木木guainv| | 2021-10-13 12:14 | 只看该作者
我看过上一篇**了

使用特权

评论回复
16
tpgf| | 2021-10-13 12:15 | 只看该作者
这个是一个什么功能呢

使用特权

评论回复
17
keaibukelian| | 2021-10-13 12:36 | 只看该作者
调试起来方便吗

使用特权

评论回复
18
heimaojingzhang| | 2021-10-13 12:38 | 只看该作者
有这方面的官方文档吗

使用特权

评论回复
19
redone| | 2021-10-13 13:28 | 只看该作者
在linux下装cube么?

使用特权

评论回复
20
labasi| | 2021-10-13 14:00 | 只看该作者
正点原子有这方面的例程吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

1182

帖子

1

粉丝