在vscode中进行keil stm32项目源代码编写的设置方法
时间: 2023-05-09 11:02:17 浏览: 204
首先,要在VSCode中安装STM32CubeMX插件。在VSCode的“Extensions”菜单中搜索安装即可。安装完成后,按下F1键,打开命令面板,输入“STM32”,选择“Initialize STM32 project”,输入项目的名称、路径、芯片型号等信息,插件会自动生成项目文件结构和代码模板。
然后,我们需要安装C/C++插件和ARM GCC插件。在VSCode的“Extensions”菜单中搜索安装即可。安装完成后,在项目文件夹内新建一个名为“.vscode”的文件夹,在该文件夹内新建一个名为“c_cpp_properties.json”的文件,并输入以下内容:
```{
"configurations": [
{
"name": "STM32",
"includePath": [
"${workspaceFolder}/**",
"${env:ARM_GCC}/arm-none-eabi/include",
"${env:ARM_GCC}/lib/gcc/arm-none-eabi/9.2.1/include"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F407xx"
],
"compilerPath": "${env:ARM_GCC}/bin/arm-none-eabi-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}```
其中,${env:ARM_GCC}是你安装的ARM GCC工具链的路径。如果你没有安装ARM GCC工具链,可以在ST官网下载并安装。在这里,我选择了ARM GCC 9.2.1版本。修改defines中的芯片型号为你自己使用的芯片型号。
最后,在VSCode的“File”菜单中选择“Open Folder”,打开项目文件夹,选择“New File”创建一个名为“Makefile”的文件,并输入以下内容:
```
TARGET = main
MCU_FAMILY = STM32F4xx
MCU_MODEL = STM32F407VGTx
BUILD_DIR = build
SRC_DIR = src
INC_DIR = inc
CC=arm-none-eabi-gcc
LD=arm-none-eabi-gcc
OBJCOPY=arm-none-eabi-objcopy
CFLAGS = -g -Wall -Werror -std=c11 -D$(MCU_MODEL) -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffreestanding -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -I $(INC_DIR)
LDSCRIPT = $(MCU_MODEL).ld
LDFLAGS = --specs=nano.specs -T $(LDSCRIPT) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map -Wl,--gc-sections -Wl,--print-memory-usage
CSOURCES = $(wildcard $(SRC_DIR)/*.c)
OBJS = $(addprefix $(BUILD_DIR)/,$(notdir $(CSOURCES:.c=.o)))
all : $(BUILD_DIR)/$(TARGET).bin
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $<
$(BUILD_DIR)/$(TARGET).elf: $(OBJS)
$(LD) $(LDFLAGS) $^ -o $@
$(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf
$(OBJCOPY) -O binary $< $@
clean:
rm -rf $(BUILD_DIR)/*
.PHONY: clean
```
其中,TARGET为生成的二进制文件名;MCU_FAMILY为芯片家族类型;MCU_MODEL为芯片型号;BUILD_DIR为生成的二进制文件路径;SRC_DIR为源代码路径;INC_DIR为头文件路径。修改以上的变量为你的实际应用。
到这里,我们的环境就设置好了。之后,我们就可以在src文件夹下进行源代码编写,命令行中使用“make”编译生成二进制文件,并用ST-Link工具下载到芯片中运行了!
阅读全文