【CLion】使用CLion开发STM32

本文主要记录使用CLion开发STM32,并调试相关功能

使用的CLion版本:2023.3.1

  •  CLion嵌入式配置教程:STM32CubeMX项目 |CLion 文档 (jetbrains.com)

  • OpenOCD官网下载:Download OpenOCD for Windows (gnutoolchains.com)

  • GNU ARM工具链:Arm GNU Toolchain Downloads – Arm Developer

1.配置开发环境

下载OpenOCDGNU ARM工具链

将这个两个压缩包下载完进行解压,我解压到CLion的安装目录下,方便查找 

注意!文件路径不要出现中文或者空格

配置环境变量:

将两个工具的bin目录添加到环境变量中

验证环境:

arm-none-eabi-gcc -v

 2.使用CubeMX创建工程

 安装STM32CubeMX教程:CubeMX安装

第一个任务当然是点个灯啦~ 

电路如下: 

配置下载方式:

配置时钟:

配置GPIO:

配置输出文件:

3.配置CLion

将新建的工程使用CLion打开

第一次启动会弹出设置面板文件的选项,可以选择一个相近的型号,比如我的是STM32F103RCT6可以选择这个STM32f103c8_blue_pill.cfg 这个配置文件,然后点击Copy to Project & Use。

也可以点击Skip跳过,这里我选择的是Skip跳过,后面再编写cfg配置文件!

新建一个配置文件,名为 stlink.cfg 这个配置文件主要是为了后续的程序烧录下载。

stlink.cfg: 

# 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/stm32f1x.cfg]
# download speed = 10MHz
    adapter speed 10000000

设置cfg配置文件:

配置系统设置:

4.编写代码

编译代码,并烧录代码~

      HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
      HAL_Delay(500);
      HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
      HAL_Delay(500);

5.调试代码

调试代码需要新建一个配置文件 Embedded GDB Server

选择调试的配置文件,我们会发现只剩下一个调试按钮。

6.添加自定义文件

在编写STM32的时候,我们不单单只在main.c中编写,也想编写属于自己外设的文件!

新建存放自定义文件的文件夹USER

里面包含Inc存放头文件.h,Src存放源文件.c

这时候我们只需要设置,让CmakeLists.txt 告诉工程去找USER文件夹这个路径

include_directories 中添加文件夹路径

另外是在file中添加相关文件,这里我主要是模仿前面的CoreDrivers去编写的。 

这时候只需重新刷新下Cmake即可!然后再重新编译即可!

7.配置其他

当我们编写一部分代码后,想要使用CubeMX去配置其他管脚IO时

只需点击.ioc 文件即可跳入STM32 CubeMX 配置界面

注意:需要在setting中正确配置CubeMX的路径!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/257887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ros2机器人在gazebo中移动方案

原文连接Gazebo - Docs: Moving the robot (gazebosim.org) 很重要的地方:使用虚拟机运行Ubuntu的时候,需要关闭”加速3D图形“的那个选项,否则gazebo无法正常显示。 Moving the robot(使用命令移动机器人示例) In t…

通用的java中部分方式实现List<自定义对象>转为List<Map>

自定义类 /*** date 2023/12/19 11:20*/ public class Person {private String name;private String sex;public Person() {}public Person(String name, String sex) {this.name name;this.sex sex;}public String getName() {return name;}public String getSex() {return…

Ubuntu中基础命令使用

前言 以下指令测试来自于Ubuntu18.04 如果有说的不对的,欢迎指正与补充 以下指令为我学习嵌入式开发中使用过最多的指令 目录 前言 1 ls 首先我们进入到Linux操作系统中 2 touch创建一个文件 3 pwd查看当前路径 4 创建目录 5 删除文件 6 cd 目录跳转 0…

Seata使用详解

分布式事务介绍分布式事务的优缺点CAP理论介绍Base理论介绍CAP和BASE之间有什么区别Seata介绍Seata支持的事务模式介绍Seata的架构Seata应用场景Seata集群部署Seata集群部署的优缺点Seata在Java中的使用案例Seata在Java中的代码示例Seata与SpringBoot2.x的整合Seata与SpringBoo…

【️Java是值传递还是引用传递?】

✅Java是值传递还是引用传递? ✅Java是值传递还是引用传递?✅典型理解 ✅增加知识仓✅Java的求值策略✅Java中的对象传递✅值传递和共享对象传递的现象冲突吗? ✅总结 ✅Java是值传递还是引用传递? ✅典型理解 编程语言中需要进行方法间的…

实现个人日志命令行工具(C语言)

〇、前言 中午上课的时候,打开 github 看了一下个人主页,虽然最近很忙,但是这个活动记录有点过于冷清: 于是我就想着写一个日志命令行工具,输入以下命令就能将我的日志立即同步到 github 上: mylog toda…

<软考>软件设计师-5计算机网络(总结)

1 网络功能和分类 1-1计算机网络的功能 计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、负载均衡、高可靠性。 1-2计算机网络按分布范围划分 1-3网络的拓扑结构 总线型&#xff0…

【论文笔记】动态蛇卷积(Dynamic Snake Convolution)

精确分割拓扑管状结构例如血管和道路,对医疗各个领域至关重要,可确保下游任务的准确性和效率。然而许多因素使分割任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。针对这个问题,作者提出了动态蛇卷积,该结…

iPhone手机开启地震预警功能

iPhone手机开启地震预警功能 地震预警告警开启方式 地震预警 版权:成都高新减灾研究所 告警开启方式

kali-捆绑应用程序

文章目录 一、安装开发环境二、开始捆绑三、开始监听 操作环境 kali windows 一、安装开发环境 ┌──(kali㉿kali)-[~] └─$ sudo -i [sudo] kali 的密码:┌──(root㉿kali)-[~] └─# whoami root┌──(root㉿kali)-[~] └─# apt update …

【设计模式--行为型--备忘录模式】

设计模式--行为型--备忘录模式 备忘录模式定义结构案例实现白箱备忘录模式黑箱备忘录模式 优缺点使用场景 备忘录模式 定义 又叫快照模式,在不破坏封装性的前提下,捕获一个对象的对象的内部状态,并在该对象之外保存这个状态,以便…

测试工具Jmeter:界面介绍、核心选项说明、核心选项用途

本文章主要介绍Jmeter的界面布局,以及各个选项的功能和它们的用途。 JMeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。 1. Jmeter主界面 当我…

银行测试:第三方支付平台业务流,功能/性能/安全测试方法

1、第三方支付平台的功能和结构特点 在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上购物…

计算机组成原理(存储器的校验)

存储器的校验 说到存储器的校验就是海明码(汉明码),这种题型有两种: 1.编码问题:根据要传送的二进制代码来确定其对应的海明码(汉明码) 2.检错问题:已知收到的汉明码,…

在 VMware 虚拟机上安装黑苹果(Hackintosh):免费 macOS ISO 镜像下载及安装教程

在 VMware 虚拟机上安装黑苹果(Hackintosh):免费 macOS ISO 镜像下载及安装教程 VMware 虚拟机解锁 macOS 安装选项使用 macOS iso 系统镜像安装使用 OpenCore 做引导程序安装 在 VMware 虚拟机上安装黑苹果(Hackintosh):免费 macOS ISO 镜像下载及安装…

硬件产品经理:硬件产品敏捷开发

目录 简介 敏捷 CSDN学院 作者简介 简介 之所以敏捷产品开发流程会越来越普遍。 主要得益于这个方法可以让企业使用更少的资源去开发出令客户满意的新产品。 敏捷开发强调的最重要的一点就是“快”。 也就是要求通过快速迭代来获取频繁的客户反馈。 这就特别适合应对市…

腾讯云微服务11月产品月报 | TSE 云原生 API 网关支持 WAF 对象接入

2023年 11月动态 TSE 云原生 API 网关 1、支持使用私有 DNS 解析 服务来源支持私有 DNS 解析器,用户可以添加自己的 DNS 解析器地址进行私有域名解析,适用于服务配置了私有域名的用户。 2、支持 WAF 对象接入 云原生 API 网关对接 Web 安全防火墙&…

基于“Galera+MariaDB”搭建多主数据库集群的实例

1、什么是多主数据库集群 多主数据库集群是一种数据库集群架构,每个节点都可以接收写入操作和读取操作,并且通过心跳机制同步数据,保证数据一致性和高可用性。因多主数据库集群每个节点都可以承担读写操作,因此它可以充分利用各个…

【无语】Microsoft Edge 浏览器不显示后台返回的数值数据

Microsoft Edge 禁用 JSON 视图 写在前面禁用 JSON 视图 写在前面 遇到一个有意思的事情,在用 Microsoft Edge 浏览器发送请求测试时发现,后端返回的数值数据没有正常展示,而是类似查看源码的结果,只显示了一个行号1,…

java读取含有合并单元格的Excel

java读取含有合并单元格的Excel Excel如下: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.…