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

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

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

====>>> 文章匯總(有代碼匯總) <<<====

1. 浮點(diǎn)運(yùn)算單元(FPU)

針對M4往上內(nèi)核的芯片都具有FPU浮點(diǎn)運(yùn)算單元??梢约涌旄↑c(diǎn)數(shù)的運(yùn)算速度。

1.1 所用硬件

硬件:STM32F401CCU6系統(tǒng)板(淘寶十幾塊錢一個(gè)系統(tǒng)板)。
軟件:CubeMX、Keil(5.38,建議使用新版本的,對于宏定義沒有的部分會(huì)有灰色提示)。

1.2 配置FPU

首先打開system_stm32f4xx.c可以看到,在系統(tǒng)初始化函數(shù)中,需要有

  1. __FPU_PRESENT == 1
  2. __FPU_USED ==1

需要有這兩個(gè)定義才可以配置。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
而在這個(gè)文件中引用了頭文件:stm32f4xx.h
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
stm32f4xx.h中引用了stm32f401xc.h
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
stm32f401xc.h中已經(jīng)對 __FPU_PRESENT == 1 定義過了。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件

然后就差 __FPU_USED ==1 了。
打開core_cm4.h,可以看到,默認(rèn) __FPU_USED 是為0的。
顯然,這里是因?yàn)闆]有定義 __TARGET_FPU_VFP,所以下面的沒有打開。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
因此,定義上就可以了。點(diǎn)擊魔術(shù)棒,添加上如下定義:,__TARGET_FPU_VFP。(注意:是有個(gè)逗號和前面分開的)。然后點(diǎn)OK。
如果有的是因?yàn)?__CC_ARM 沒有定義的話, 那就也添加上去就好了。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
然后再次看就發(fā)現(xiàn),__FPU_PRESENT == 1前面不是已經(jīng)有了嗎,為什么這里還是灰色的。
那是因?yàn)樵谶@個(gè)文件中并沒有包含定義__FPU_PRESENT的文件。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
解決方法1(修改文件的方法都不建議):在這個(gè)文件中引用 定義有__FPU_PRESENT的文件。如下圖。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
解決方法2:把__FPU_PRESENT=1U在這里再添加一次。
注意是1U 不是1,如果寫成1,就和stm32f401cx.h中定義的不一樣,會(huì)報(bào)很多重定義警告。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件

此時(shí)再看。浮點(diǎn)運(yùn)算就配置好了。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
最后,勾選上使用單精度硬件浮點(diǎn)運(yùn)算即可。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件

2. CMSIS-DSP

2.1 添加DSP庫

兩種方法
第一種:直接下載源碼,放到工程文件夾,并且添加頭文件路徑。
第二種:CubeMX添加。

這里用第二種(多方便)

在生成工程頁面選擇。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
勾選上之后點(diǎn)擊OK。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
勾選上之后,生成工程。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
打開工程可以看到,已經(jīng)添加好了。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
此時(shí),在main.c文件中,添加#include “arm_math.h”,然后編譯會(huì)報(bào)錯(cuò)。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件

這是因?yàn)樵?code>arm_math.h中會(huì)根據(jù)內(nèi)核類型引用不同的文件。因此這里需要定義內(nèi)核。

stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
解決:根據(jù)自己的內(nèi)核添加即可。這里是M4的。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
此時(shí)再次編譯,就沒有報(bào)錯(cuò)了。

2.2 測試

在主函數(shù)中添加代碼,在調(diào)試窗口可以看到.F32。
stm32 浮點(diǎn)數(shù),開源庫,stm32,單片機(jī),嵌入式硬件
可以在官網(wǎng)看到所有的函數(shù)及解釋說明

====>官網(wǎng)地址<====文章來源地址http://www.zghlxwxcb.cn/news/detail-609917.html

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

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

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

相關(guān)文章

  • 【GD32F310開發(fā)板試用】浮點(diǎn)DSP運(yùn)算及Modbus移植測評

    【GD32F310開發(fā)板試用】浮點(diǎn)DSP運(yùn)算及Modbus移植測評

    首發(fā)極術(shù)社區(qū)。如對兆易創(chuàng)新GD32F310 MCU感興趣,歡迎添加微信 aijishu2020 加入GD32技術(shù)討論群。 1. 測評背景 GD32作為國產(chǎn)化ARM中的旗艦,其全系列產(chǎn)品不僅市場占有率高,而且各具特色,廣受使用者好評。 筆者在測評這款GD32F310之前,曾經(jīng)使用過GD32F450,其強(qiáng)大的性能,低廉的價(jià)

    2023年04月09日
    瀏覽(17)
  • 【ARM 浮點(diǎn)計(jì)算單元 FPU (FPA,VFP,NEON)介紹】

    文章目錄 1.1 ARM FPU 簡介 1.1.1 單精度浮點(diǎn)數(shù) 1.1.2 雙精度浮點(diǎn)數(shù) 1.1.3 指數(shù)與尾數(shù)的特殊情況 1.1.4 IEEE 754 標(biāo)準(zhǔn) 1.2 編譯器對浮點(diǎn)數(shù)的影響 1.2.1 VFP 和 FPA 的關(guān)系 1.2.1.1 VFP的功能特點(diǎn) 1.2.2 GCC 與浮點(diǎn)運(yùn)算 1.2.3 VFP 現(xiàn)場保護(hù) 1.2.4 硬浮點(diǎn)與軟浮點(diǎn) 1.3 ARM NEON 1.1 ARM FPU 簡介 ARM 的 FPU(浮點(diǎn)單

    2024年03月21日
    瀏覽(49)
  • STM32 FIR濾波器使用要點(diǎn),STM32 DSP篇

    STM32 FIR濾波器使用要點(diǎn),STM32 DSP篇

    STM32搭配的CMSIS的DSP庫已經(jīng)寫好了FIR,我們做的就是用好用穩(wěn)定! 2.1使用MATLAB的Filter Designer生成濾波器的參數(shù)(直接在MATLAB命令中輸入filterDesigner即可調(diào)出此工具,配置好參數(shù)后,選擇Targets-Generate C header) 2.2調(diào)用arm_fir_init_f32或arm_fir_init_q31或arm_fir_init_q15等等視實(shí)際使用情況而

    2024年02月14日
    瀏覽(23)
  • STM32 keil MDK配置FPU詳解

    STM32 keil MDK配置FPU詳解

    記錄下keil對FPU的配置,及對應(yīng)的宏參數(shù)。 FPU單元是芯片上一個(gè)獨(dú)立于CPU處理的浮點(diǎn)運(yùn)算單元,整個(gè)單元可以被使能和關(guān)閉。 STM32F4帶有32位單精度硬件FPU支持浮點(diǎn)指令集。相比Cortex-M3、Cortex-M0等無FPU的芯片高出數(shù)十倍甚至上百倍的運(yùn)算性能。 STM32F7/H7及以上處理器帶有雙精度

    2024年02月11日
    瀏覽(79)
  • 【STM32】 DSP庫函數(shù)的一些基本使用

    對于一些剛接觸STM32的童靴來說,DSP庫一定是一個(gè)陌生的東西。通俗來說,DSP庫就是為了讓MCU能夠使用像DSP(數(shù)字信號處理的芯片)功能弄的一些官方庫函數(shù),它是基于MCU的FPU(浮點(diǎn)運(yùn)算功能)的,如果你連FPU都不知道咋開,我個(gè)人建議先去查一查啥是FPU以及DSP庫移植的一些

    2024年02月01日
    瀏覽(17)
  • STM32中DSP庫簡單理解和使用

    STM32中DSP庫簡單理解和使用

    主要參考arm_math.h中的內(nèi)容編寫,以STM32F091為例 數(shù)字信號處理(DigitalSignal Processing,簡稱 DSP ) 是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng) 域的新興學(xué)科,通過利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對信號進(jìn)行采集、變換、濾波、估值、增強(qiáng)、 壓縮、識(shí)別等處理,以得到符

    2024年02月15日
    瀏覽(18)
  • STM32CubeMX關(guān)于添加DSP庫的使用

    STM32CubeMX關(guān)于添加DSP庫的使用

    人生如逆旅,我亦是行人。 STM32 系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的 ARM Cortex-M3 內(nèi)核 而 DSP 應(yīng)該是 TMS320 系列, TMS320 系列 DSP 是 軟件可編程器件 ,具有通用微處理器所具有的方便靈活的特點(diǎn)。其基本特點(diǎn)有: 哈佛結(jié)構(gòu),流水線操作 ,專用的

    2023年04月08日
    瀏覽(32)
  • STM32實(shí)現(xiàn)TFT LCD浮點(diǎn)數(shù)顯示

    STM32實(shí)現(xiàn)TFT LCD浮點(diǎn)數(shù)顯示

    方式一:通過sprintf將小數(shù)轉(zhuǎn)換成字符串,通過字符串顯示函數(shù)LCD_ShowString()顯示 方式二:計(jì)算出浮點(diǎn)數(shù)整數(shù)部分、小數(shù)部分、整數(shù)部分的數(shù)字?jǐn)?shù)和小數(shù)部分的數(shù)字?jǐn)?shù),通過數(shù)字顯示函數(shù)LCD_ShowNum()和LCD_ShowChar(僅數(shù)點(diǎn))顯示,三部分拼接而成 浮點(diǎn)數(shù)--“整數(shù)部分的數(shù)字?jǐn)?shù)

    2024年02月16日
    瀏覽(24)
  • STM32串口傳輸浮點(diǎn)數(shù)

    現(xiàn)代的計(jì)算機(jī)系統(tǒng)一般采用 字節(jié) (Octet, 8 bit Byte)作為邏輯尋址單位,當(dāng)物理單位的長度大于 1 個(gè)字節(jié)時(shí),就要區(qū)分字節(jié)順序(Byte Order, or Endianness)。 字節(jié)序,即字節(jié)在電腦中存放時(shí)的序列與輸入(輸出)時(shí)的序列是先到的在前還是后到的在前。字節(jié)序也用于描述多字節(jié)數(shù)

    2024年02月03日
    瀏覽(12)
  • 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)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包