STM32 DSP库的使用方法
一、工程中如何添加DSP庫(kù)
在keil5軟件中點(diǎn)擊 Pack,CMISIS組件選擇DSP資源,可以選擇Source源碼或者Library庫(kù)導(dǎo)入到項(xiàng)目中,點(diǎn)擊OK,可以在項(xiàng)目樹(shù)中看到該資源已經(jīng)導(dǎo)入了工程。
二、?如何使用DSP庫(kù)
DSP庫(kù)對(duì)浮點(diǎn)計(jì)算做了優(yōu)化和增強(qiáng),一般來(lái)說(shuō)在具有FPU單元的單片機(jī)上運(yùn)行效果更好,STM32F4 是M4內(nèi)核,支持FPU,但默認(rèn)是關(guān)閉該功能的,需要手動(dòng)開(kāi)啟,開(kāi)啟方法很簡(jiǎn)單,開(kāi)啟Single Precison,硬件浮點(diǎn)計(jì)算功能即可。
以STM32F4為例,其預(yù)編譯添加以下宏支持:ARM_MATH_CM4(CM4支持的),ARM_MATH_MATRIX_CHECK(矩陣輸入輸出檢查),ARM_MATH_ROUNDING(四舍五入相關(guān)支持)
在項(xiàng)目工程中,一般需要包括#include "arm_math.h"? #include "math_helper.h"? #include "arm_const_structs.h"頭文件夾即可。
具體使用方法參考官方說(shuō)明文檔,沒(méi)有哪一個(gè)博客寫的有官方文檔好。
DSP庫(kù)支持的計(jì)算類別包括:
- 基本數(shù)學(xué)函數(shù),包括:向量的絕對(duì)值,加減乘除,位與,點(diǎn)乘,或,異或等
- 快速數(shù)學(xué)函數(shù),包括:平方根,余弦,正弦
- 復(fù)雜的數(shù)學(xué)函數(shù),包括:共軛,點(diǎn)乘,復(fù)數(shù),復(fù)數(shù)平方,乘方,實(shí)數(shù)乘法
- 濾波功能,包括:FIR IIR LMS 等
- 矩陣函數(shù),包括:矩陣的加法、轉(zhuǎn)置、乘法、逆等
- 變換功能,包括:FFT?
- 電機(jī)控制功能,包括:PID、Clarke、正余弦變換等
- 統(tǒng)計(jì)功能,包括:最大、平均、方差、標(biāo)準(zhǔn)差、均方根等
- 支持功能,包括:排序、填充、插值、轉(zhuǎn)換等
- 插值功能,包括:線性插值、雙線性插值等
- 支持向量機(jī)功能(SVM),包括:SVM
- 貝葉斯分類器功能,包括:貝葉斯估計(jì)
- 距離計(jì)算功能,包括:常見(jiàn)的距離計(jì)算,如歐式距離,余弦距離等
在線參考手冊(cè):https://www.keil.com/pack/doc/CMSIS/DSP/html/group__cos.html#gace15287f9c64b9b4084d1c797d4c49d8
其他需要注意的事項(xiàng),注意KEIL軟件版本和Pack,盡量使用最新的版本。
總結(jié)
以上是生活随笔為你收集整理的STM32 DSP库的使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux cJSON库的使用、编译为c
- 下一篇: cacti 监控安装失败