網(wǎng)站首頁 編程語言 正文
使用CLion開發(fā)stm32時(shí),添加stm32的DSP庫支持,以便進(jìn)行后續(xù)FFT等運(yùn)算
1. 添加DSP庫文件到工程目錄
- 生成STM32CubeMX工程
- 根目錄下新建文件夾,命名為DSP_LIB
- 將目錄STM32Cube\Repository\STM32Cube_FW_F4_V1.26.1\Drivers\CMSIS\DSP下的Include文件夾和Sources文件夾復(fù)制到DSP_LIB文件夾中,注意Repository目錄中可能有多個(gè)固件庫版本,要選擇與當(dāng)前STM32CubeMX工程所使用相同的版本。
- 在Include文件夾中,僅保留arm_common_tables.h,arm_const_structs.h,arm_math.h三個(gè)頭文件,刪除其余頭文件。
- 全部修改完成后,DSP_LIB目錄文件結(jié)構(gòu)如圖所示。
2. 修改CMakeLists
1.CMakeLists.txt文件中,取消22行-24行的注釋,使編譯器加入對(duì)硬件浮點(diǎn)數(shù)計(jì)算的宏定義。
#Uncomment for hardware floating point
add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
修改完成后,在CMakeLists_template.txt文件中做出同樣的修改,這樣就不會(huì)被STM32CubeMX更新工程時(shí)刷掉了。
2.CMakeLists.txt文件中,分別在49行include_directories指令和53行file指令中分別加入DSP_LIB文件夾的包含。
include_directories(Core/Inc Drivers/STM32F4xx_HAL_Driver/Inc Drivers/STM32F4xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32F4xx/Include Drivers/CMSIS/Include DSP_LIB/Include)
file(GLOB_RECURSE SOURCES "startup/*.*" "Drivers/*.*" "Core/*.*" "DSP_LIB/*.*")
然后同樣在CMakeLists_template.txt中同步修改。
3. 添加STM32HAL庫
在DSP_LIB/Include文件夾中,打開arm_math.h文件,加入代碼:
#include <stm32f4xx.h>
這個(gè)庫可以幫助找到需要使用的變量和宏定義,如果使用其他系列芯片只需改為對(duì)應(yīng)的庫。如使用f1芯片,則對(duì)應(yīng)改為stm32f1xx.h即可。
原文鏈接:https://www.cnblogs.com/unknownwonder/p/15032859.html
相關(guān)推薦
- 2022-08-15 Golang通過包長協(xié)議處理TCP粘包的問題解決_Golang
- 2022-07-02 Python零錢兌換的實(shí)現(xiàn)代碼_python
- 2023-01-19 C++深度探索虛函數(shù)指針示例_C 語言
- 2022-12-11 C語言冷知識(shí)之預(yù)處理字符串操作符詳解_C 語言
- 2023-05-13 Python?readline()和readlines()函數(shù)實(shí)現(xiàn)按行讀取文件_python
- 2022-03-26 在ASP.Net?Core應(yīng)用程序中使用Bootstrap4_實(shí)用技巧
- 2022-08-30 C++超詳細(xì)介紹模板_C 語言
- 2022-10-20 詳解Python中的?type()函數(shù)_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支