clion开发stm32f4系列(一)————工程的搭建

前言

  1. 本系列主要用到的芯片为STM32f407ZGT6.。
  2. 作为系统性学习记录.。
  3. 开发和烧录环境采用的是Clion+cubemx+openocd。
  4. 代码管理采用gitee进行管理。
  5. 注意: 使用cmake进行管理的时候,路径不要出现中文

使用cubemx创建基本的工程

在这里插入图片描述

基本配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

使用clion进行打开生成的项目

在这里插入图片描述

参考cubemx生成的CMakelists文件,编写管理Bsp的CMakelist文件

在这里插入图片描述

bsp文件编写

  1. 先写一个bsp_init初始化函数(内部实现后面补充)
    在这里插入图片描述
    在这里插入图片描述

CMakelists文件的编写

cmake_minimum_required(VERSION 3.22)
# 通过设置变量定义库名称,方便修改
#
set(BSP_LIB_NAME stm32f4_bsp)

project(${BSP_LIB_NAME})
# 这句命令的意思是 将当面目录下的源文件(路径名),保存在BSP_SRCS变量中
aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/ BSP_SRCS)

add_library(${BSP_LIB_NAME} INTERFACE)


# Enable CMake support for ASM and C languages
enable_language(C ASM)


# 为项目中的目标编译定义,添加特定于BSP(Board Support Package)的编译时宏定义
# 这些宏定义对于控制硬件相关的特性或行为尤其重要,确保软件能够正确地运行在不同的硬件平台上
target_compile_definitions(${BSP_LIB_NAME} INTERFACE
)

# 为指定的目标库添加接口定义目录
target_include_directories(${BSP_LIB_NAME} INTERFACE
        ${CMAKE_CURRENT_LIST_DIR}/

)


# 为目标stm32cubemx添加源文件接口
target_sources(${BSP_LIB_NAME} INTERFACE
        # 添加的源文件列表
        ${BSP_SRCS}
)

target_link_directories(${BSP_LIB_NAME} INTERFACE
)

target_link_libraries(${BSP_LIB_NAME} INTERFACE
)

# Validate that STM32CubeMX code is compatible with C standard
if (CMAKE_C_STANDARD LESS 11)
    message(ERROR "Generated code requires C11 or higher")
endif ()

在主的CMakelists文件中添加

在这里插入图片描述

在主函数中调用

在这里插入图片描述

工程编译(ok)

在这里插入图片描述

总结

  1. cmake方式生成是需要新版的cubemx。
  2. 不会涉及到cmakelist在生成代码时被覆盖的情况。
  3. 针对每个模块采用一个CMakelists文件管理,增加层次结构,复用性增强
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

詩不诉卿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值