Clion中使用C/C++开发stm32程序

这篇具有很好参考价值的文章主要介绍了Clion中使用C/C++开发stm32程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        从刚开始学习阶段,一直是用的keil5开发stm32程序,自从看到稚晖君推荐的CLion开发嵌入式程序后,这次尝试在CLion上开发stm32程序。

1、配置CLion用于STM32开发的环境

        这里我就不详细写了,没必要重新写,网上教程很多,这里我主要参考的是稚晖君的文章,我是参考大佬写的文章一步一步配置成功的。     【教程】手把手教你用Clion进行STM32开发【如何优雅の进行嵌入式开发】 - 知乎 (zhihu.com)

以及几个其他几位博主的文章:   

配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎 (zhihu.com) 

Clion&&STM32环境配置教程(优雅开发STM32)_sailhang的博客-CSDN博客

2、C与C++程序之间的相互调用

        由于C和C++的特性不同,一个是面向过程的语言,一个是面向对象的语言。因此,C++中的很多特性,比如函数的重载,在使用时就给我们带来了很大的便利。而为了实现C++中的这些特性,程序在编译后就会对函数“改名”,比如在程序定义一个函数后,经过C++编译器和C编译器编译后的函数名不一样。

        正是这两种语言编译方式的不同,就会导致两种程序在调用的时候出现错误。因此就需要我们采用C++中的指令extern “C” 来实现两种语言文件的互相调用。

#ifdef __cplusplus
extern "C" {
#endif
 
//这里包含的头文件包括:其他c语言的头文件
#include "main.h"
#include "gpio.h"
void test(void);

#ifdef __cplusplus
}

#include "my_cpp.h"
//这里extern "C"外面包括c++自身的头文件

#endif

注意:extern “C” 关键字是在C++程序中使用的。

3、使用keil5开发C/C++程序

     这里主要注意:确认Micro LIB处于不启用的状态,因为MicroLIB为非标准的精简库,会与标准C++产生冲突

Clion中使用C/C++开发stm32程序,学习笔记,stm32,CLion,C/C++

我看网上其他人说要在工程的设置中为编译参数增加--cpp11来启用C++编译器,但是经过我实践,发现不用加程序一样可以运行,不知道为什么。

4、使用CLion开发C/C++程序

      CLion中组织编译规则都是基于CMakeLists.txt文件的,只需要知道怎么在这个文件里面添加源码目录和include文件夹的路径就行,如图:文章来源地址https://www.toymoban.com/news/detail-744405.html

include_directories(
        Core/Inc
        UserApp
// 其他include目录
)


file(GLOB_RECURSE SOURCES
        "startup/*.*"
        "Drivers/*.*"
        "Core/*.*"
        "UserApp/*.*"
        "3rdParty/*.*"
        // *.*表示通配符
        )

到了这里,关于Clion中使用C/C++开发stm32程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用clion配合STM32CubeMX开发stm32(包含断点调试,查看寄存器值,printf重定向)

    在嵌入式领域中开发以ARM公司的Cortex M内核为代表的单片机时程序员使用最多的IDE一定是Keil公司的MDK4 MDK5,而Keil已经脱离现代智能IDE,近年来IAR逐步向现代智能IDE靠近但还不足,一些芯片原厂提供了基于eclipse改装版IDE,这些工具在调试方面有优势,比如查看外设寄存器,内

    2024年04月24日
    浏览(50)
  • STM32+Clion多线程开发

    目录 创建多线程 freertos.c main.cpp main_app.h 二值信号量 相关API介绍 (1) osSemaphoreCreate (2)osSemaphoreDelete (3)osSemaphoreRelease (4)osSemaphoreWait 实际使用 创建信号量(freertos.c) 在头文件中外部引用(freertos_inc.h) main.c 关于clion使用printf,参考【教程】手把手教你用Clion进行STM32开

    2024年03月15日
    浏览(48)
  • STM32CubeMX联合CLion开发环境搭建

    1.1 STM32CubeMX STM32CubeMX是一种图形化配置工具,用于为STM32微控制器生成启动代码和初始化配置。它可以帮助简化STM32项目的初始化过程,并提供了一种可视化的方式来配置引脚、时钟、外设和中断等。HAL(Hardware Abstraction Layer)库是STMicroelectronics提供的一种高级API层,用于编写

    2024年02月11日
    浏览(49)
  • Clion开发STM32之ESP8266系列(四)

    上一篇: Clion开发STM32之ESP8266系列(三) 实现esp8266需要实现的函数 串口3中断函数的自定义(这里没有使用HAL提供的) 封装esp8266服务端的代码和测试 核心配置头文件(添加一些宏定义) sys_core_conf.h文件中 源码 对应的串口3中断函数的编写 头文件 源文件 本次设置esp8266模块的IP为

    2024年02月08日
    浏览(50)
  • cubeMX+CLion开发STM32,添加DSP库

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、使用cubeMX创建工程并添加DSP库 二、修改Cmake配置 总结 前段时间看了改用CLion做STM32的开发,使用cubeMX添加DSP库,生成项目后编译报错undefined reference to `arm_sin_f32\\\',参考了很多文章都是

    2024年02月13日
    浏览(39)
  • CLION开发STM32之W5500系列(一)

    本系列适用于需要使单片机通过网口进行通信的开发。 针对的是刚入门的同学们,也是个人的经验分享。 本次使用到的芯片为stm32f103vet6(其他的也可以) 本次使用的网口模块为W5500,其网关有示例程序均可以参考. 本次使用Clion+OpenOCD+ARM-GCC 进行开发、烧录、编译. 建议熟悉网络

    2024年02月09日
    浏览(48)
  • Clion开发STM32之驱动开发(ST7735S篇)

    ST7735S数据手册 字库头文件(module_st7735s_font.h) 头文件(module_st7735s.h) 源文件(module_st7735s.c) 实现对应的驱动接口 测试单元

    2024年02月07日
    浏览(55)
  • Clion开发STM32之W5500系列(综合实验)

    此为w5500模块的综合实验测试模块,包含dhcp、dns、ntp 以上三个模块的驱动参考之前的文章,本篇不做说明. 使用的开发芯片 stm32f103vet6系列,外设接口使用的spi2 通过dhcp动态获取ip, 通过dns解析NTP服务域名的ip 通过NTP服务ip获取时间

    2024年02月16日
    浏览(43)
  • CLion开发工具 | 05 - 使用CLion开发ESP32

    电脑上安装好ESP-IDF环境 本文参考Jetbrains官方视频教程:在 Windows 上用 CLion 开发 ESP32 | CLion教程 | 嵌入式开发 | IDE 复制一份新的helloworld工程。 使用CLion打开该工程。 选择信任该工程。 CLion打开后自动打开了README.md文件,并进行了Cmake自动配置。 ESP-IDF需要临时配置的环境变量

    2024年02月02日
    浏览(49)
  • Clion开发STM32之W5500系列(NTP服务封装)

    在w5500基础库中进行封装,获取服务端的时间,来校准本地时间。 本次使用的方案是通过ntp获取时间+定时器更新保证时间准确。

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包