国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32中DSP庫簡(jiǎn)單理解和使用

這篇具有很好參考價(jià)值的文章主要介紹了STM32中DSP庫簡(jiǎn)單理解和使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

STM32中DSP庫簡(jiǎn)單理解和使用


主要參考arm_math.h中的內(nèi)容編寫,以STM32F091為例


一、什么是DSP

數(shù)字信號(hào)處理(DigitalSignal Processing,簡(jiǎn)稱 DSP ) 是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng) 域的新興學(xué)科,通過利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、 壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。

STM32中添加DSP庫主要用于數(shù)據(jù)的計(jì)算和處理,如復(fù)數(shù),矩陣,三角函數(shù),插值、求最大值求最小值、fir濾波器和 FFT等。

以下為arm_math.h對(duì)于DSP的簡(jiǎn)介

本用戶手冊(cè)描述了CMSIS DSP軟件庫,

*一套通用信號(hào)處理函數(shù),可用于基于Cortex-M處理器的設(shè)備。

*庫被劃分為許多函數(shù),每個(gè)函數(shù)覆蓋一個(gè)特定的類別:

  • -基本的數(shù)學(xué)函數(shù)

  • -快速的數(shù)學(xué)函數(shù)

  • -復(fù)雜的數(shù)學(xué)函數(shù)

  • -過濾器

  • -矩陣函數(shù)

  • -變形

  • -電機(jī)控制功能

  • -統(tǒng)計(jì)函數(shù)

  • -支持函數(shù)

  • -插值函數(shù)

*該庫有獨(dú)立的函數(shù)用于操作8位整數(shù)、16位整數(shù)、32位整數(shù)和32位浮點(diǎn)值。

二、大概使用步驟

選擇合適lib

首先要搞清楚所使用單片機(jī)的端緒是小端還是大端,可以查手冊(cè)得知是大端還是小端。如STMF091是小端(Little Endian)模式。
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
以下為DSP庫類型。名稱中帶l的為小端模式(Little Endian)庫,帶d的為大端模式(Big Endian)庫,帶f的為浮點(diǎn)單元,sp代表單精度,dp代表雙精度。
以STM32F091為例,則選擇在CMSIS中加入arm_cortexM0l_math.lib

*庫安裝程序在Lib文件夾中包含庫的預(yù)構(gòu)建版本。

    • arm_cortexM7lfdp_math.lib(Cortex-M7,小端序,雙精度浮點(diǎn)單元)
    • arm_cortexM7bfdp_math.lib(Cortex-M7,大端序,雙精度浮點(diǎn)單元)
    • arm_cortexM7lfsp_math.lib (Cortex-M7,小端序,單精度浮點(diǎn)單元)
    • arm_cortexM7bfsp_math.lib(Cortex-M7,大端序和單精度浮點(diǎn))
    • arm_cortexM7l_math.lib (Cortex-M7,小端序)
    • arm_cortexM7b_math.lib (Cortex-M7,大端序)
    • arm_cortexM4lf_math.lib (Cortex-M4,小端序,浮點(diǎn)單元)
    • arm_cortexM4bf_math.lib(Cortex-M4,大端序,浮點(diǎn)單元)
    • arm_cortexM4l_math.lib (Cortex-M4,小端序)
    • arm_cortexM4b_math.lib (Cortex-M4,大端序)
    • arm_cortexM3l_math.lib (Cortex-M3,小端序)
    • arm_cortexM3b_math.lib (Cortex-M3,大端序)
    • arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+,小端序)
    • arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+,大端序)
    • arm_ARMv8MBLl_math.lib (Armv8-M基線,小端序)
    • arm_ARMv8MMLl_math.lib (Armv8-M主線,小端序)
    • arm_ARMv8MMLlfsp_math.lib(Armv8-M主線,小端序,單精度浮點(diǎn)單元)
    • arm_ARMv8MMLld_math.lib (Armv8-M主線,小端序,DSP指令)
    • arm_ARMv8MMLldfsp_math.lib Armv8-M主線,小端序,DSP指令,單精度浮點(diǎn)單元

引用庫

*庫函數(shù)聲明在公共文件arm_math.h中,該文件位于Include文件夾中。

*只需包含此文件并在應(yīng)用程序中鏈接適當(dāng)?shù)膸欤缓箝_始調(diào)用庫函數(shù)。該庫支持single

*對(duì)于具有小端序和大端序的Cortex-M內(nèi)核,公共頭文件 arm_math.h。浮點(diǎn)單元(FPU)變體將使用相同的頭文件。

添加預(yù)置宏

不同的芯片要添加的預(yù)置宏不盡相同,其與處理器型號(hào)有關(guān),同樣以STM32F091為例,查手冊(cè)可知,其為Cortex-M0類型
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
或者,可以通過下表確認(rèn)處理器型號(hào)
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)

*定義適當(dāng)?shù)念A(yù)處理器宏ARM_MATH_CM7或ARM_MATH_CM4或ARM_MATH_CM3或ARM_MATH_CM0或ARM_MATH_CM0plus取決于應(yīng)用程序中的目標(biāo)處理器。

*對(duì)于Armv8-M內(nèi)核,定義預(yù)處理器宏ARM_MATH_ARMV8MBL或 ARM_MATH_ARMV8MML。

*如果Armv8-M主線內(nèi)核支持DSP指令,則設(shè)置預(yù)處理器宏__DSP_PRESENT。

二、具體使用步驟(基于cubmx)

1.使用STM32CubeMX生成Keil5工程

特別注意:點(diǎn)擊Project Manager打開工程設(shè)置窗口,點(diǎn)擊Code Generator選項(xiàng)卡,在STM32Cube Firmware Library Package中選擇Copy all used libraries into the project folder。(這樣才會(huì)在生成的文件中添加DSP庫)
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)

2.選擇合適lib和添加

打開keil,雙擊Drivers/CMSIS,選第三個(gè),添加已經(jīng)存在的文件
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
打開工程下這個(gè)路徑
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
選擇合適lib加入
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
如下即為添加成功
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)

2.添加宏定義

點(diǎn)擊魔法棒,C/C++選項(xiàng),添加宏定義,因?yàn)閒091為Cortex-M0類型,所以添加ARM_MATH_CM0宏定義(注意:宏定義間的符號(hào)為英文逗號(hào))
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
在C/C++選項(xiàng)卡中,的Include Paths中添加DSP庫的路徑:\Drivers\CMSIS\DSP\Include
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)
點(diǎn) OK --> 點(diǎn)OK

3.在相應(yīng)c文件中引用 arm_math.h就可以使用了

官方有關(guān)于HAL庫的DSP庫例程,大概在此路徑下D:\stm3232\STM32Cube_FW_F0_V1.11.4\Drivers\CMSIS\DSP\Examples,同時(shí)在工程文件下.Drivers\CMSIS\DSP\Examples也可以看到例程
如果找不到的話,再次推薦一個(gè)超超超超超超超超級(jí)好用的搜文件軟件 everything(點(diǎn)擊即可跳轉(zhuǎn)至官方網(wǎng)站,可以挑選適合自己設(shè)備的版本下載)


測(cè)試

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "arm_math.h"
/* USER CODE END Includes */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
float data;
/* USER CODE END PD */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  data = arm_cos_f32(PI/3) ;
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

理論結(jié)果為0.5,結(jié)果合理,大功告成?。。。。?!
dsp stm32,stm32,單片機(jī),嵌入式硬件,dsp開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-553481.html

到了這里,關(guān)于STM32中DSP庫簡(jiǎn)單理解和使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32浮點(diǎn)運(yùn)算單元(FPU)和DSP庫使用

    STM32浮點(diǎn)運(yùn)算單元(FPU)和DSP庫使用

    ==== 文章匯總(有代碼匯總) ==== 針對(duì)M4往上內(nèi)核的芯片都具有FPU浮點(diǎn)運(yùn)算單元??梢约涌旄↑c(diǎn)數(shù)的運(yùn)算速度。 硬件:STM32F401CCU6系統(tǒng)板(淘寶十幾塊錢一個(gè)系統(tǒng)板)。 軟件:CubeMX、Keil(5.38,建議使用新版本的,對(duì)于宏定義沒有的部分會(huì)有灰色提示)。 首先打開 system_stm32f4xx.c 可

    2024年02月15日
    瀏覽(44)
  • STM32調(diào)用DSP函數(shù)方法

    STM32調(diào)用DSP函數(shù)方法

    ..DriversCMSISDSPIncludearm_math.h(341): error: ?#35: #error directive: \\\"Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_MATH_ARMV8MBL, ARM_MATH_ARMV8MML\\\" ? ? #error \\\"Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS, ARM_MATH_CM0, ARM_M

    2024年02月12日
    瀏覽(23)
  • DSP與STM32的區(qū)別

    DSP(Digital Signal Processor,數(shù)字信號(hào)處理器)和STM32是在嵌入式系統(tǒng)領(lǐng)域中被廣泛應(yīng)用的兩種技術(shù)。它們?cè)诠δ芎蛻?yīng)用方面有一些相似之處,但也存在一些顯著的區(qū)別。本文將詳細(xì)介紹DSP和STM32之間的區(qū)別,并提供相關(guān)的源代碼示例。 功能和應(yīng)用領(lǐng)域: DSP:DSP是為數(shù)字信號(hào)處理

    2024年01月18日
    瀏覽(19)
  • STM32移植DSP庫詳細(xì)步驟

    STM32移植DSP庫詳細(xì)步驟

    ? ? ? ? 先將下載的DSP庫文件放到需要的項(xiàng)目目錄下。 ???????? ? ? ? ? 隨后打開keil項(xiàng)目進(jìn)入配置。右鍵項(xiàng)目名稱,點(diǎn)擊管理項(xiàng)目選項(xiàng);創(chuàng)建一個(gè)DSP文件添加依賴后點(diǎn)擊OK。 ? ? ? ? ? ?點(diǎn)擊小魔術(shù)棒,點(diǎn)擊C/C++選項(xiàng),在Define中添加ARM_MATH_CM3,然后添加DSP的.c和.h文件路徑,

    2024年02月13日
    瀏覽(16)
  • 【STM32】STM32F4調(diào)用DSP庫實(shí)現(xiàn)FFT運(yùn)算

    【STM32】STM32F4調(diào)用DSP庫實(shí)現(xiàn)FFT運(yùn)算

    最近在整理之前的stm32筆記,打算把一些有價(jià)值的筆記發(fā)到CSDN分享一下。 在進(jìn)行模擬/數(shù)字信號(hào)的轉(zhuǎn)換過程中,當(dāng)采樣頻率F大于信號(hào)中最高頻率 fmax 的 2 倍時(shí)(F2*fmax),采樣之后的數(shù)字信號(hào)完整地保留了原始信號(hào)中的信息。 設(shè)采樣頻率(單位時(shí)間可以采多少個(gè)信號(hào)樣本)為 F

    2023年04月24日
    瀏覽(58)
  • STM32F407添加DSP庫

    STM32F407添加DSP庫

    編譯程序出現(xiàn)以下報(bào)錯(cuò) 出現(xiàn) “error: #5: cannot open source input file “arm_const_structs.h”: No such file or directory” 錯(cuò)誤的原因是編譯器無法找到名為 “arm_const_structs.h” 的頭文件。 頭文件路徑錯(cuò)誤 頭文件未安裝或丟失 編譯器配置問題 添加DSP庫 添加DSP庫可以參考這篇博客: STM32CubeMX關(guān)

    2024年02月05日
    瀏覽(35)
  • 【stm32開發(fā)筆記】基于HAL庫的STM32F4添加DSP庫

    【stm32開發(fā)筆記】基于HAL庫的STM32F4添加DSP庫

    本文分兩種方法添加DSP庫:1.CubeMX直接配置ioc添加; 2.KEIL內(nèi)添加; 簡(jiǎn)述:補(bǔ)齊全部lib庫-添加DSP包-使能DSP勾選-添加頭文件及魔術(shù)棒配置-測(cè)試 1.補(bǔ)齊lib庫。( 如果使用直接默認(rèn)添加的庫,是不支持FPU的,所以需要補(bǔ)齊后找到所需的lib文件進(jìn)行替換,在MX的工程管理欄,選擇復(fù)制所

    2024年02月16日
    瀏覽(146)
  • cubeMX+CLion開發(fā)STM32,添加DSP庫

    cubeMX+CLion開發(fā)STM32,添加DSP庫

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 文章目錄 前言 一、使用cubeMX創(chuàng)建工程并添加DSP庫 二、修改Cmake配置 總結(jié) 前段時(shí)間看了改用CLion做STM32的開發(fā),使用cubeMX添加DSP庫,生成項(xiàng)目后編譯報(bào)錯(cuò)undefined reference to `arm_sin_f32\\\',參考了很多文章都是

    2024年02月13日
    瀏覽(25)
  • STM32 DSP庫CUBEMX配置+FFT頻率計(jì)算

    STM32 DSP庫CUBEMX配置+FFT頻率計(jì)算

    使用DSP中的函數(shù)加快計(jì)算。 本文首先講述如何通過添加dsp庫。 再講述使用DSP庫進(jìn)行實(shí)數(shù)FFT運(yùn)算。(FFT運(yùn)算用到了前面講述的STM32CubeMX-ADC hal庫 3定時(shí)器觸發(fā)) 參考1文章 參考2文章 先找到文件路徑 然后設(shè)置如下路徑 雙擊如下并找到路徑 D:STM32CubeMXSTM32Cube_FW_F4_V1.26.2DriversCMS

    2024年02月16日
    瀏覽(34)
  • STM32自帶的DSP庫的濾波初體驗(yàn)(一)

    STM32自帶的DSP庫的濾波初體驗(yàn)(一)

    最近在弄STM32自帶的DSP庫里的濾波,記錄一下: ????????整個(gè)濾波的過程比較簡(jiǎn)單,先是調(diào)用arm_fir_init_q15函數(shù)來初始化instance_q15_S,然后用三角函數(shù)生成一個(gè)50Hz+6000Hz的正弦數(shù)組,放在testInput數(shù)組中,最后調(diào)用arm_fir_q15函數(shù)來濾波。 ? ? ? ? 這個(gè)里面需要注意的是,濾波系

    2024年02月14日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包