在ubuntu下搭建stm32开发环境
从零开始到点亮小灯
一直用的MDK开发stm32,也在用ubuntu,了解到linux下也能开发arm后就一直想试试在ubuntu下写一写stm32的代码。前几天折腾了一番,终于成功把点亮小灯的程序在stm32上跑起来了。在这里记录下整个过程。
1、思路
这里有篇教程Ubuntu下使用Makefile开发STM32,教程里教你一步一步搭建开发环境。总体思路是使用makefile将stm32的库文件代码和用户代码组织起来,makefile告诉编译器该怎么编译这些文件,编译链接工作gcc-arm来干,最后使用st-link将生成的二进制文件下载到stm32上。
我也采用相同的思路,只是因为我不会makefile,所以这部分工作就交给STM32cubeMX来干。
2、使用的工具
软件
- 串口助手:minicom或者cutecom
- 编译器: gcc-arm-none-eabi
- 编译工具:cmake
- 下载工具:STM32cubeProgrammer或st-link
- 代码配置工具:STM32cubeMX
- 依赖库
硬件平台
- 野火stm32f103vet6开发板(野火指南者)
- stlink
3、配置过程
3.1 安装串口调试助手
我装了两个串口助手,minicom和cutecom,minicom是基于命令行的,而cute是做成图形界面的我在搜minicom的使用教程时偶然看到了cutecom,索性就装了,cutecom使用起来比较简单,跟windows下的串口助手一样。
minicom
sudo apt-get install minicom
minicom的使用教程看这里
3.2 安装交叉编译器gcc-arm
记一次在64位Ubuntu 16.04下成功安装arm-none-eabi-gcc交叉编译器的过程
3.3 安装st-link驱动
Ubuntu16.04中安装stlink驱动
这里还可以选择ST官方出的STM32cubeProgrammer下载工具,据说十分强大。直接去官网下载安装包安装就成,不过它要求Oracle JRE或者open JFX环境,ubuntu默认是openJDK,我就是这个java环境卡了好久没搞定才用的stlink,如果有谁有办法搞定的话请务必给我留言,不胜感激。
3.4 安装cmake工具
sudo apt-get install cmake
3.5安装STM32cubeMX
STM32cubeMX的安装也十分简单,到ST官网下载对应安装包安装就行了。
4、生成代码
打开STM32cubeMX,选择芯片型号并配置,输出文件选择makefile。第一次运行会下载固件库,下载花的时间比较长。
然后在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 */
5、编译
生成代码后,我们进入到工程所在的文件夹,打开终端
make
编译完成后会多出一个build文件夹,编译的中间文件和生成的二进制文件.hex都在这
6、下载
打开stlink GUI,连接好stlink和开发板,点击连接,等到连接好后打开上一步生成的.hex文件,然后点击下载就可以了
*至此我们就完成了从零开始搭建开发环境到下载程序运行的全部步骤
- 文中若有错误和不足之处欢迎之处并给出建议