linux编写程序怎么用到stm32,如何在Linux下为STM32 MCU构建代码

步骤1:安装必需的软件

首先,安装必需的软件。

为ARM安装gcc编译器:

gcc编译器包含用于编译,链接和构建MCU的构建代码的工具。安装以下三个软件包:

gcc-arm-none-eabi

binutils-arm-none-eabi

libnewlib-arm-none-eabi

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

安装STM32CubeMX

STM32CubeMX是用于生成C项目的基于Java的工具。借助此工具可以配置使用过的MCU的所有部分,例如USART,I2C,SPI,GPIO,TIMx,。..。

网页:www.st.com/stm32cube

CubeMX工具具有Linux支持。易于安装:

下载并解压缩zip文件

运行安装程序

遵循向导

取决于您的ST32硬件(STM32F0,STM32F10x 。.. |),您需要为MCU下载库。运行STM32CubeMX并单击“帮助”-》“安装新库”。从列表中为您的MCU选择最新的库。

安装Makefile4CubeMX

从CubeMX项目生成Makefile需要使用Makefile4CubeMX。

下载链接:github.com/duro80/Makefile4CubeMX

如何安装:

git clone https://github.com/duro80/Makefile4CubeMX.git

sudo ln -s“ $ PWD“/CubeMX2Makefile.py/usr/bin/CubeMX2Makefile.py

安装代码:: Blocks IDE

要安装Code :: Blocks IDE,请使用您的软件包管理器。在Ubuntu下可用的版本是13.12-3:

sudo apt-get install codeblocks

安装stlink

stlink是用于将构建的代码下载到MCU(闪存)的程序。由texane维护的inux版本,位于github:github.com/texane/stlink。此处介绍了安装过程。如果您喜欢二进制文件,则最新版本在这里:github.com/texane/stlink/releases。

步骤2:设置代码:: Blocks IDE

87b88b160a9abeadbca00202915936d8.png

要为ARM处理器编译并构建自己的程序,必须设置C :: B IDE。在“设置-》编译器。..”中:

在左窗格中选择“全局编译器设置”

在顶窗格中选择编译器:ARM的GNU GCC编译器

在中心窗格中,选择“工具链可执行文件”选项卡并填写以下值:

编译器安装目录:/usr

C编译器:arm-none -eabi-gcc

C ++编译器:arm-none-eabi-g ++

动态库链接器:arm-none-eabi-gcc

静态链接器库:arm-none-eabi-ar

调试器:现在可以为空

make程序:make

Step 3:创建STM32CubeMX项目

6b6770db1aa9b166ad2a5e808fe1b8aa.png

37121fb319cfaf5cbf75cc334d226a41.png

746580377d56c1764c3ccfe62e6718e4.png

6897505dddb81febfc8834e7b4c538f6.png

在启动项目之前,请检查是否存在特定库MCU。在菜单帮助-》安装新库中,检查所需的库(在我的情况下为STM32F0版本1.5.0)。单击“立即安装”将库安装到本地存储库中。

下一个项目将用于STM32F0 MCU。

创建新项目

有两种可能:通过选择MCU来创建新项目

,通过选择STM板

在“新建项目”对话框中选择“系列”: STM32F0,行:STM32F0x0价值行。从列表中选择STM32F030F4Px

出于测试目的,将PA0引脚检查为GPIO_Output。

设置项目属性

单击项目设置:菜单Project-》 Settings。 。.

键入项目名称(例如InstructableF0)

更改项目位置(如果需要)

工具链/IDE:选择SW4STM32

取消选中“根据根生成”

单击“确定”

生成C代码

单击“项目”-》“生成代码”以生成空项目

步骤4:生成Makefile和C :: B项目

ccc9722c6c5d64f3bf9b29395e4f40ff.png

要生成Makefile和Code :: Block项目,即Makefile4CubeMX

打开生成CubeMX项目的目录,并在其中打开终端。类型:

CubeMX2Makefile.py 。

在工作目录中将生成文件:Makefile,InstructableF0.cbp(此文件的名称取决于CubeMX项目名称)

Step 5:编写并构建程序

打开项目InstructableF0.cbp并打开main.c文件。

现在,我们可以做一点代码了。让我们切换端口PA.0来演示工作代码。

int main(void){

/* MCU Configuration-------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */

HAL_Init();

/* Configure the system clock */

SystemClock_Config();

/* Initialize all configured peripherals */

MX_GPIO_Init();

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1) {

HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);

HAL_Delay(500); // 500ms

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

}

构建代码以验证我们代码的正确性:Build-》 Rebuild(Ctrl + F11)

步骤6:连接硬件

d0969fd102e9a8d56b33dc5d3f4590f3.png

1c36dc9ebd3d6275762ffe51671c203a.png

准备硬件:

连接stlink-v2加密狗与您的电路板

将LED二极管连接到端口PA0(串联到150欧姆或更高的电阻)

构建

在Code :: Block中,在编译器工具栏中选择“发布”。

选择“重建”(Ctrl + F11)。重建后,代码会自动加载到MCU

LED二极管开始闪烁。

您也可以在不使用Code :: Block IDE的情况下使用Makefile。

在工作目录(放置Makefile的目录)中打开终端,然后键入:

内部版本代码:

make

闪存代码到MCU:

责任编辑:wv

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值