【Clion+CubeMX开发STM32】(二)创建自己的工程

2023-11-07

新建工程

打开你的Clion,点击新建工程
在这里插入图片描述
在左侧找到STM32CubeMX,点击后在上方选择工程所在位置。
比如我的工程要存放在ClionSTM32文件夹下面,我在其后面写上我的工程名即可
设置好后点击右下角的创建

将untitled换成你的新工程名
点击创建

在这里插入图片描述

等待工程创建之后,会弹出“选择面板配置文件”

这个选择跳过,如果有你所用的开发板型号,可以直接选择。
如果你用的是自己的开发板或者是淘宝购买的非ST官方的板子,都选择跳过。后面会自己创建cfg文件

在这里插入图片描述
然后在左侧找到.ioc文件,也就是CubeMX的文件,点击“通过STM32CubeMX打开”,随后在CubeMX上配置你的工程文件

需要注意的是,工程默认芯片型号是F030F4Px
所以打开CubeMX之后需要先修改芯片型号

在这里插入图片描述

修改芯片型号

更换芯片型号

在这里插入图片描述

搜索芯片型号,后面按照自己的工程要求配置即可,CubeMX工程配置这里不做过多讲解

在这里插入图片描述
配置好工程后,要按照Clion创建时的工程名字和路径填写

先修改名字路径,再选择IDE为“STM32CubeIDE”

在这里插入图片描述

配置完成后,点击右上角的“generate code”
生成之后点击close,不要点击另外两个“open***”

在这里插入图片描述
然后回到刚刚的Clion工程

在这里插入图片描述

左侧可以看到有Inc和Src两个目录
Src里放这.c源文件 Inc里放着.h头文件
如果要添加自己的文件,只能分别添加在Src和Inc目录中

添加自己的文件

若想添加自己的目录,可以按照下面的方法

在这里插入图片描述
先右键工程名,新建—目录,填写文件夹名称,比如“template”

当然你也可以在文件夹内进行操作
将你自己的文件放置在工程目录里,Clion也会自动识别

在这里插入图片描述
找到新建的目录,右键新建两个文件,分别命名为template.c和template.h

在这里插入图片描述

创建好后可以在左侧看见自己创建的文件夹,打开你新建的.c和,h文件
可以看见上方提示不属于任何项目

所以我们还需要将其添加进Cmake里

在这里插入图片描述

将自己的文件添加Cmake项目——修改CMakeLists_template,txt

打开左方的“CMakeLists.txt”,可以看见上方提示“此文件从模板自动生成!请勿更改”
所以我们不在此文件里修改,因为每次从CubeMX里generate code生成代码后,该文件都会重新生成,导致我们在此文件做的修改都会被删除
所以我们需要在模板文件中修改添加文件路径

打开左侧的“CMakeLists_template,txt”

在这里插入图片描述

打开后找到“include_directories(${includes})”和“file(GLOB_RECURSE SOURCES ${sources})”
大概在51行附近

在这里插入图片描述
在include_directories中加入.h头文件的地址
在file中加入.c源文件所在的文件夹名称

在这里插入图片描述
这是我刚刚新建文件的路径,

ClionSTM32是我用来存放工程的文件夹
untitled是工程名,也就是我的工程文件夹
template是刚刚新建用来存放我的功能文件.c .h的文件夹

在这里插入图片描述

如上图,将template的路径添加进去,如果你的路径有子目录的话,如我的Debug文件在USER文件夹下面,按照上面的格式填入进去即可,不同的文件中间以空格隔开

对于.c源文件只需要填入文件的第一级目录
而.h文件则需要填写至.h文件的最后一级目录

修改完成之后,需要在CubeMX中重新generate code以更新你的CMakeLists.txt

在这里插入图片描述
重新生成后等待CMake加载完成就可以发现上方的提示已经没有了
如果还有提示,可以按上图重修加载一下你的CMake
如果仍然有问题,建议再对照一下上一步然后CubeMX里重新generate code

大部分和CMake有关的问题都可以试着generate code一下看看

烧录程序——编写.cfg文件

右上角的三个绿色按键分别是编译、下载和调试
在这里插入图片描述
编写完代码之后就可以编译并烧录

在这里插入图片描述
点击编译后,出现上方的“构建 已完成”,即表示编译成功,程序没有报错

编写.cfg文件

按照前文的方法,在工程里面新建一个文件,名字为 stlink.cfg

在这里插入图片描述
打开你的.cfg文件,将下面的代码复制进去

因为我用的是stlink下载,如果你不是用stlink的话,该文本不适用
我的芯片是F4的,如果你用的是F1,把第六行的stm32f4x.cfg改成f1即可

# choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f4x.cfg]
# download speed = 10MHz
adapter speed 10000

当然你也可以使用串口下载,在工程路径里找到.hex文件,利用串口烧录软件烧录即可

在这里插入图片描述
编写好.cfg文件之后,还需要配置你工程的调试器

在这里插入图片描述

点击编辑配置

在这里插入图片描述

加号+ 找到openocd
面板配置文件选择刚才新建的.cfg文件,如上图配置之后
应用 确定

在这里插入图片描述
选择openocd,连接上你的stlink就可以进行烧录和调试了

在这里插入图片描述
点击烧录后,出现这样的提示,说明烧录成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Clion+CubeMX开发STM32】(二)创建自己的工程 的相关文章

  • 在express项目里配置ejs模板引擎

    方法1 修改app js view engine setup app set views path join dirname views app set view engine ejs 在views中创建ejs模板文件 方法2 修改app
  • 老年人晕倒的几种原因

    晕倒是一种突发性 短暂性 一过性的意识丧失而昏倒 突然性的晕倒 跟大脑的神经有分不开关系 癫痫 脑供血不足 心脑血管疾病都是引起头晕倒的原因 大脑血液上不来 脑血液突然停止 就会产生放电波头晕的症状 患者会在一时间出现晕倒 很容易引起脑震荡
  • 在conda虚拟环境中的PyQt配置以及相关Pycharm设置

    文章目录 在conda虚拟环境中的PyQt配置 背景环境介绍 PyQt依赖包及PyQt tools的下载 Pycharm进行PyQt的相关配置 结语 在conda虚拟环境中的PyQt配置 作者 下龙湾 背景环境介绍 anaconda安装文件

随机推荐

  • Netty4简单认知

    Channel简介 在Netty中 Channel相当于一个Socket的抽象 它为用户提供了关于Socket状态 是连接还是断开 及对Socket的读 写等操作 每当Netty建立了一个连接 都创建一个与其对应的Channel实例 Cha
  • 各种排序算法的讲解与实现

    排序的分类 1 内部排序 内部排序 在整个排序过程中不需不访问外存便能完成 称这样的排序问题为内部排序 1 1 插入排序 插入排序 将无序序列中的一个或几个记录 插入 到有序的序列中 从而增加记录的有序序列的长度 主要思想是将第一个元素看做
  • 3D重建模的初步了解

    相关学习资料如下 cousera课程 https www coursera org learn robotics perception youtube课程 https www youtube com watch v RDkwklFGMfo
  • 什么是HTTPS

    首先 在参考 Tomcat内核设计剖析 大型网站技术架构 的基础上加了一些个人理解 如有错误或者不全面的地方 还请大家指出 在知道什么是HTTPS之前 我们首先要知道一下什么是HTTP HTTP是超文本传输协议的简称 工作在应用层 传输层基
  • linux上好玩的东西

    Figlet 想知道tmux安装与配置评论加点赞 想要我这个效果吗 安装figlet mac安装 brew install figlet brew 没有的可以看我之前的文章 ma配置 linux ubuntu deepin sudo apt
  • 最易上手的测试用例设计方法

    NO 1 lt lt 测试用例设计方法 gt gt 以下是八种常见的测试用例设计方法 包括等价类 边界值 判定表 因果图 正交实验 状态迁移图 场景法和错误推测 详述如下 等价类划分法 Equivalence Partitioning 策略
  • C++新特性16_写时拷贝(解决浅拷贝在某一个类对象中的资源进行修改,所有引用该资源的对象全部会被修改的问题;解决办法:在所有改变值的地方,重新分配内存,改变的是拷贝的值,而不影响原有对象中共享资源)

    C 新特性16 写时拷贝 1 问题 如果共享资源中的值发生了变化 那么其他使用该共享资源的值如何保持不变 2 解决思路 使用引用计数时 当发生共享资源值改变的时候 需要对其资源进行重新的拷贝 这样改变的是拷贝的值 而不影响原有的对象中的共享
  • 母版页禁用Enter提交表单

    在母版页里面由于使用了form 常常需要禁用enter提交表单 因为内容页或者母版页自身有如果有type submit 的button 当textbox聚焦时 按下enter都会触发表单的默认提交 不论是IE还是firefox 于是需要在o
  • python json串合并

    获取cookie def get login cookies self str1 str2 str3 str4 str5 str6 try 必须要有的cookie字段 var items bizuin data bizuin data ti
  • 1*1卷积核的作用及其应用举例

    1 降维和升维 通过使用 1x1 卷积核 可以改变输入张量的通道数 当输入张量的通道数较大时 使用 1x1 卷积核进行卷积操作可以将通道数减小 从而降低模型的计算复杂度 相反 如果需要增加通道数 也可以使用 1x1 卷积核进行升维操作 im
  • 标签href几种使用

    a标签的最重要功能是实现超链接和锚点 a标签里href属性是我们经常用的 其实它的值有很多种 可能我们往往会忽略 今天分享一下a标签的属性值及用法 1 href 这是一个比较常用的方法 是标签内置的一个方法 用于网页返回顶部较多 比如在底部
  • 深度学习------tensorflow2.0,keras实现CNN(mnist、cifar2、cifar10:ResNet-34、ResNet-18)

    1 ResNet 34卷积神经网络 cifar10 随着网络的加深 出现了训练集准确率下降 错误率上升的现象 就是所谓的 退化 问题 按理说更深的模型不应当比它浅的模型产生更高的错误率 这不是由于过拟合产生的 而是由于模型复杂时 SGD的优
  • qt day 5

    实现局域网的网络聊天室功能 1 gt 服务器代码 widget h ifndef WIDGET H define WIDGET H include
  • IDEA安装教程(多图预警)

    简介 关于IDEA的介绍 引用自百度百科 IDEA全称 IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 J2EE支持 各类版本工具
  • 集简云简化流程模板,轻松实现工作流程自动化

    集简云平台内置大量自动化流程模板 用户可以在 模板中心 搜索应用名称 选择适合自己的场景 直接使用 本期分享集简云自动化工作流程 模板推荐 模板1 小鹅通新增订单后同步到seatable并更新微伴助手用户信息 集成应用 小鹅通 SeaTab
  • [终端配色方案]

    配色方案 一 Iterm2 设置Color Preferences gt Profiles gt Colors Brighten bold text去掉 选择solarized 选择xterm 256color 二 Iterm2 Shell
  • Restful风格

    文章目录 前言 一 Restful风格是什么 二 Restful风格里面的请求方式 1 Get 2 POST 3 PUT 4 DELETE 这四个在项目接口中分别代表的是查 增 改 删 三 Restful风格的Controller如何实现
  • django静态文件无法访问解决方案

    nginx配置如下 For more information on configuration see Official English Documentation http nginx org en docs Official Russi
  • 开发日记2021-17、20周

    2021 4 19 温习了下观察者模式 学习了状态模式 但是感觉状态模式不是太能把握透彻 代码结构不太一样 理解起来有些偏差 写着写着就陷入到了沉思中 总会忘记要把想法记下来 这里就是草稿就是思路演练场 这里写下的东西不需要完美 只要记录下
  • 【Clion+CubeMX开发STM32】(二)创建自己的工程

    目录 新建工程 修改芯片型号 添加自己的文件 将自己的文件添加Cmake项目 修改CMakeLists template txt 烧录程序 编写 cfg文件 编写 cfg文件 新建工程 打开你的Clion 点击新建工程 在左侧找到STM32