---------------------->小白,求赏个赞<-------------------------
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
- 如果有一样的问题希望能帮上忙。
- 每天进步一点点!
- 加油
- 加油
- 加油