在使用VScode编译 STM32CubeMX 生成的stm32工程时,Makefile 中遇到的问题解决工具

---------------------->小白,求赏个赞<-------------------------

1.问题引入

在使用vscode编译时,对于外部添加(不是自动生成的).c文件需要手动加入到Makefile的 C = source \后面。

######################################
# source
######################################
# C sources
C_SOURCES =  \
Core/Src/main.c \
Core/Src/gpio.c \
Core/Src/usart.c \
Core/Src/stm32f1xx_it.c \
Core/Src/stm32f1xx_hal_msp.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
Core/Src/system_stm32f1xx.c \
# 以下为非自动生成的.c文件,需要手动填写,不然编译不通过
Core/Src/myu8g2.c \
Core/Src/myUart.c \
······

当C文件较多时添加比较繁琐。例如:当移植u8g2图形库时,需要添加移植文件u8g2文件夹下所有的.c文件路径到makefile里(非常多,有40多个)。

# C sources
C_SOURCES =  \
Core/Src/main.c \
Core/Src/gpio.c \
Core/Src/usart.c \
Core/Src/stm32f1xx_it.c \
Core/Src/stm32f1xx_hal_msp.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c \
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c \
Core/Src/system_stm32f1xx.c  \
# 以下为非自动生成的.c文件,需要手动填写,不然编译不通过
Core/Src/myu8g2.c \
Core/Src/myUart.c \
u8g2/mui.c \
u8g2/mui_u8g2.c \
u8g2/u8g2_bitmap.c \
u8g2/u8g2_box.c \
u8g2/u8g2_buffer.c \
u8g2/u8g2_button.c \
u8g2/u8g2_circle.c \
u8g2/u8g2_cleardisplay.c \
u8g2/u8g2_d_memory.c \
u8g2/u8g2_d_setup.c \
u8g2/u8g2_font.c \
u8g2/u8g2_fonts.c \
u8g2/u8g2_hvline.c \
u8g2/u8g2_input_value.c \
u8g2/u8g2_intersection.c \
u8g2/u8g2_kerning.c \
u8g2/u8g2_line.c \
u8g2/u8g2_ll_hvline.c \
u8g2/u8g2_message.c \
u8g2/u8g2_polygon.c \
u8g2/u8g2_selection_list.c \
u8g2/u8g2_setup.c \
u8g2/u8log.c \
u8g2/u8log_u8g2.c \
u8g2/u8log_u8x8.c \
u8g2/u8x8_8x8.c \
u8g2/u8x8_byte.c \
u8g2/u8x8_cad.c \
u8g2/u8x8_capture.c \
u8g2/u8x8_debounce.c \
u8g2/u8x8_display.c \
u8g2/u8x8_d_ssd1306_128x64_noname.c \
u8g2/u8x8_fonts.c \
u8g2/u8x8_gpio.c \
u8g2/u8x8_input_value.c \
u8g2/u8x8_message.c \
u8g2/u8x8_selection_list.c \
u8g2/u8x8_setup.c \
u8g2/u8x8_string.c \
u8g2/u8x8_u16toa.c \
u8g2/u8x8_u8toa.c \

另外,不要忘了# C includes 添加.h文件依赖

# C includes
C_INCLUDES =  \
-ICore/Inc \
-IDrivers/STM32F1xx_HAL_Driver/Inc \
-IDrivers/STM32F1xx_HAL_Driver/Inc/Legacy \
-IDrivers/CMSIS/Device/ST/STM32F1xx/Include \
-IDrivers/CMSIS/Include \
# 以下为手动添加
-Iu8g2

因此,我用python的pytkinter编写了一个小软件,由于扫描文件夹下的.c文件,并以 C = source需要的格式输出,可直接复制。

2.解决工具

2.1 界面

在这里插入图片描述

2.2 举例操作

例如:我需要的格式为 u8g2/mui.c \,文件所在路径:E:\MCU\STM32\zet6_vscode\u8g2
填写要求:在输入文件路径填入【E:\MCU\STM32\zet6_vscode\u8g2】,在需要删除的文件路径名称填入【E:\MCU\STM32\zet6_vscode\】,点击开始即可得到,如下图:
软件输出格式
最后一个反斜杠可以删除也可不删。

结束OVER

项目链接(siyDirScan.py为源代码): https://github.com/YANG-lf/STM32CubeMX_C_source_format
exe云盘链接:https://wwz.lanzoum.com/i5JvC0dfqvij
密码:9423

  • 如果有一样的问题希望能帮上忙。
  • 每天进步一点点!
  • 加油
  • 加油
  • 加油
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值