最快最简单的使用gcc编译stm32

在Windows下最快最简单的使用gcc编译stm32

在Windows下使用gcc编译stm通常需要许多准备工作

  1. minGW(编译c文件)
  2. gcc-arm-none-eabi(翻译到arm)
  3. make(编译链接的工具)
  4. makefile(该项目编译链接的规则)

如果想快捷的尝试使用gcc编译编译出软件并运行的话,我推荐一个简单快速的方案

  1. 软件安装(相信这两个软件大家都是有的),

    1. VSCode
    2. STM32CubeMX
  2. 安装VSCode插件并配置环境

    1. 在扩展中搜索并安装Embedded IDE

    在这里插入图片描述

    1. 点击左侧的图标打开插件

      在这里插入图片描述

    2. 点击下方的安装实用工具

      在这里插入图片描述

    3. 点击GNU Arm Embedded Toolchain (stable)
      在这里插入图片描述

    4. 安装过程中右下角有来源 :Embedded IDE的弹窗都点击同意

    1. 在扩展中搜索并安装Makefile Tools,点击安装即可

    在这里插入图片描述

    1. 安装完成后使用Ctrl+,打开设置. 在搜索栏中搜索Makefile: Configure On Open,取消勾选(勾选时会更改startup_stm32f103xb.s文件,导致编译错误.最新版本已经默认不勾选了. 如果已经被改变了,删除该文件,重新生成工程即可)

    2. Makefile: Configure On Open配置项

      在这里插入图片描述

    3. 关闭该设置

      在这里插入图片描述

3. 使用STM32CubeMX生成 Makefile工程

  1. 选择以芯片开始

    在这里插入图片描述

  2. 选择芯片

    在这里插入图片描述

  3. 配置调试接口

    在这里插入图片描述

  4. 配置GPIO(后续点亮LED验证程序运行)

    在这里插入图片描述

    在这里插入图片描述

  5. 配置工程选项

    在这里插入图片描述

  6. 生成工程

    在这里插入图片描述

4.编译工程

  1. 打开工程文件夹

    在这里插入图片描述

  2. 找到main.c文件添加两行简单的代码

    在这里插入图片描述

    添加这两行代码

        HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
        HAL_Delay(500);
    

    添加完如图

    在这里插入图片描述

  3. 打开左侧的Makefile Tools扩展

    在这里插入图片描述

  4. 确认Make程序的路径为.eide文件夹下的make.exe

  5. 点击编译按钮生成可执行文件

    在这里插入图片描述

    出现类似的报错,就是我前面提到过的.s文件被修改

    startup_stm32f103xb.s:1: Error: junk at end of line, first unrecognized character is `-'
    startup_stm32f103xb.s:2: Error: bad size 0 in type specifier
    startup_stm32f103xb.s:2: Error: bad instruction `startup_stm32f103xb.s'
    
  6. 可执行文件在工程文件夹下的build文件夹下

    在这里插入图片描述

5.烧录验证

  1. build文件夹里有.bin;.elf;.hex随便选择一个烧写到芯片

    在这里插入图片描述

  2. 可以看到LED按预期功能闪烁

    在这里插入图片描述

  3. 通过逻辑分析仪验证时间符合预期

    在这里插入图片描述

相信这个简单的过程可以让你快速使用gcc编译软件

实际上eide非常强大,甚至可以通过比较简单的过程,就可以实现导入你的KEIL工程,并转为使用gcc编译

希望这个简单的教程能抛砖引玉,引起你对于gcc编译过程的兴趣,在后面的学习中能更深入的了解这其中的原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值