首页 > 其他分享 >最快最简单的使用gcc编译stm32

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

时间:2024-09-10 17:53:43浏览次数:13  
标签:stm32f103xb gcc Makefile startup 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编译过程的兴趣,在后面的学习中能更深入的了解这其中的原理

标签:stm32f103xb,gcc,Makefile,startup,stm32,编译,安装
From: https://blog.csdn.net/jmjrmtszt/article/details/141892748

相关文章

  • openwrt编译带源码信息的linux内核版本遇到的错误
    1、在openwrt的根目录中可以执行如下命令:makemenuconfig打开CONFIG_DEBUG选项就会生成待调试信息的内核版本2、在openwrt的根目录中可以执行如下命令:makekernel_menuconfig打开CONFIG_DEBUG_INFO也会生成待调试信息的内核版本问题描述:在gcc7.5.0和gdb8.1.1的环境中编译出来......
  • STM32获取温度3种方法
    在STM32微控制器上直接获取CPU温度并不像在一些包含内置温度传感器的高端微处理器(如某些ARMCortex-A处理器)上那样直接。STM32微控制器通常不内置专门的温度传感器。不过,你可以通过几种方法来估算或测量与CPU温度相关的数据。方法一:外部温度传感器添加温度传感器:使用如DS1......
  • 编译器与解释器:核心差异与实际应用
    目录1.编译器:从源代码到机器代码2.解释器:即时执行3.联系:代码的执行4.区别:性能与灵活性5.现代软件开发中的应用6.结论        在软件工程的世界里,代码的执行方式多种多样,其中最常见的两种方式是通过解释器和编译器。这两种工具在软件开发中扮演着至关重要......
  • STM32-ADC外设
    1.通道.规则通道.注入通道2.规则序列寄存器配置通道的采样顺序3.ADC周期4.ADC转换方式*单次转换:adc每次只采集某个通道的一个点,如果需要再次采集,就需要重新使能。*连续转换:adc采集某个通道一个点,转换完成后,再采集第二点。依次类推4.扫描模式*单次扫描模式:多个通道只扫......
  • STM32F7外设FMC控制LCD显示屏
    STM32F7外设FMC控制LCD显示屏,显示屏的点阵LCD控制器(DotMatrixLCDController/Driver)是ST7066U。配置在CubeMX中选择图1根据实际情况选择,Bank几,LCD片选引脚。图2FMC原理对于FMC如何控制LCD,我的理解:FMC能自动发送数据读写RAM,通过FMC读写LCD的显存就可以完成显示的......
  • 08 Windows批处理之执行编译后的程序
    本文是关于一个bat文件执行或调用另一种语言编写和编译的程序。实际上,这样做的语法非常简单。本文最有趣的方面是,有时正在执行的程序在bat文件中没有定义路径。bat文件如何找到可执行文件?本文的主要重点将放在查找此类程序的两个非常重要的机制上,即当前目录和路径变量。本主题远......
  • STM32八种工作模式
    一:模式介绍1.1四种输入模式:1.2四种输出模式:二:模式框图三:模式解析3.1模拟输入模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻)。通常是用于ADC采集电压输入通道,进行AD转换。3.2浮空输入浮空输入。浮空输入状态下,IO的电平状态是不确定的,完......
  • python编译安装亲测
    yumgroupinstall"DevelopmentTools"yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-devellibffi-devellscd/opt/lsmkdirpythoncdpython/  ls  wgethttps://www.python.org/ftp/python/3......
  • Windows环境下 VS2022 编译 OGG 源码
    OGGOGG音频编码格式,全称为OggVorbis,是一种开源且无专利限制的音频压缩格式。它被设计用来提供高质量的音频存储和传输,同时保持较小的文件大小。OGGVorbis支持多声道音频,并且可以处理可变比特率,这意味着它可以根据音频内容的复杂性动态调整压缩率,以优化音质和文件大小。......
  • Go语言编译时为exe添加图标和属性信息的方法
    在使用Go语言开发应用程序时,有个非常方便的地方就是编译得到的可执行文件可以不依赖任何动态链接库、并且不需要任何运行环境即可运行,这一点Java就没那么方便了。不过在Windows上编译得到的exe文件,默认是不带图标和任何属性信息的,那么怎么才能让我们编译得到的可执行文件带上图标......