关于stm32cubeMX与Clion使用时的移植操作

1.使用Clion时需要添加相关的配置


使用的时候需要添加插件:

1.首先是cmake使用cmake作为编译管理器

2.是使用openOCD,该文件的作用是使其实现stm32的板子的管理使用

3.cfg文件,因为该文件是下载到板子上的时候需要使用的下载调用配置文件

下图是一个使用st_link的为stm32l4系列板子使用的.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]
source [find target/stm32L4x.cfg]
# download speed = 10MHz
adapter speed 10000

2.关于clion软件开发stm32时的文件移植问题


文件移植时主要是要注意在cmakelist.txt文件中添加相关配置的问题

首先找到include_directories()然后选择直接在后面添加文件夹的名字

然后是到这个file中添加文件夹里面的文件比如说这里是key文件夹下的所有文件

3.移植时报错的问题


1.添加之后如果出现一些问题比如说和cubeMX的引脚配置有些冲突的话可以选择在key.h的文件的引脚配中注释掉或者选择使用static,在函数的前面加上static可以实现同名函数在编译中不报错。

2.如果出现一些一些在keli中不报错而在clion中报错的关键字,比如u8可以使用ctrl+F和ctrl+R进行替换u8替换为char(或者使用uin8_t)

3.当然我个人更加建议不要移植stm32的sys.h文件你可以自己编写一个sys.h文件使用typedef进行重新定义

//
// Created by hello on 2023-03-02.
//
​
#ifndef DGL_SYS_H
#define DGL_SYS_H
​
typedef char u8;
typedef short u16;
typedef int u32;
​
#endif //DGL_SYS_H

使用该代码的那么在移植的时候就可以轻松实现移植不再需要对变量进行更改

4.关于串口发送的printf重写的方法


使用Clion的时候创建stm32项目的时候不可避免的是会遇到使用串口Usart的问题如果一味的使用HAL_UART_Transmit()函数的话显得很不方便那么解决办法是什么呢??

方法是重写printf函数代码如下:

#ifdef __GNUC__
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
     set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
 
  return ch;
}

但是考虑到每次都需要重写这该如何是好?当然是模板啦!!

打开设置->编辑器->实时模板->C/C++->点击旁边的+号->下方的缩写该名字->描述该模板->模板文本(将你的文本粘贴进去)->点击下面的更改勾选C然后点击应用即可。

然后在你的主函数中使用#include<stdio.h>输入的定义的缩写名字就可以实现对这个模板的快速书写

可以从这些图中发现已经定义成功烧录在while(1){}中使用printf();函数就可以实现串口输出了。

### STM32移植DSP库至CLion开发环境 #### 准备工作 为了成功地将DSP库移植STM32使用CLion作为开发工具,需先完成一系列准备工作。确保安装了最新版的STM32CubeMX用于初始化配置,并通过该软件设置必要的硬件参数[^2]。 #### 安装CMSIS-DSP库 进入STM32CubeMX中的Software Packs选项卡,选择Select Components来查找并下载适合目标MCU架构版本的DSP库。确认选择了正确的DSP Library组件后保存项目设置[^4]。 #### 设置CLion项目结构 创建一个新的CMakeLists.txt文件定义项目的构建规则。对于STM32平台而言,重要的一点是在此文件内指定路径指向所使用的标准外设驱动程序以及刚刚添加的DSP函数集合: ```cmake # CMake最低版本需求声明 cmake_minimum_required(VERSION 3.10) # 工程名称设定 project(My_STM32_Project) # 添加源码目录 add_subdirectory(${PROJECT_SOURCE_DIR}/Drivers/CMSIS/DSP_Lib/Source) include_directories( ${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Core/Include/ ${PROJECT_SOURCE_DIR}/Drivers/CMSIS/DSP_Lib/Include/ ) # 编译器标志调整以适应嵌入式应用特点 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard") # 指定链接脚本位置 set(LINKER_SCRIPT_PATH "STM32F4xx_FLASH.ld") ``` 上述代码片段展示了如何利用`add_subdirectory()`命令引入外部资源,同设置了特定于ARM Cortex-M系列处理器的编译选项。 #### 修改链接器脚本 根据具体的应用场景定制化`.ld`文件的内容,特别是内存布局部分。这一步骤至关重要,因为它决定了应用程序各节区(section)在闪存或RAM中的确切放置方式[^3]。 #### 测试验证 编写简单的测试案例检验新集成的功能模块是否正常运作。可以尝试调用几个基本的数学运算接口如乘法累加(`MAC`)操作或是快速傅立叶变换(`FFT`)算法实例来进行初步评估[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值