STM32 进阶教程 12 - M4的硬件乘法器使用
前言
??? Cortex-M4支持硬件浮點(diǎn)運(yùn)算單元(有些廠商直接說成DSP模塊),本節(jié)將給大家介紹STM32F407芯片中硬件浮點(diǎn)運(yùn)算單元中的使用及帶來的性能對比。
示例詳解
基于硬件平臺: 正點(diǎn)源子的stm32f4 探索者開發(fā)板,MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產(chǎn)生的配置工程,使用KEIL5編譯代碼。本示例所用的開發(fā)板及部分原理圖:
?
?
?
?
?
?
?
?
c) 編譯工程,調(diào)試程序, (注:在使用探索者F4調(diào)試時,下載或仿真調(diào)試時先不要PC串口工具連接上開發(fā)板的USB_232接口,有可能導(dǎo)致程序運(yùn)行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應(yīng)端口!!,可按下面的具體操作步驟來操作—>>? )。
?
在KEIL mdk v5中對stm32f407的硬件浮點(diǎn)單元默認(rèn)是開啟的(選擇是單精度模式—Single Precision )如下圖:
?
程序跳轉(zhuǎn)到main函數(shù)開始位置:
打開串口工具,并打開相應(yīng)串口:
串口已打開,程序全速運(yùn)行(F5或單擊全速運(yùn)行圖標(biāo))相看運(yùn)行結(jié)果:
?
接下來我們不使用硬件浮點(diǎn)運(yùn)算單元,如下圖選擇不使用,
編譯,如果出現(xiàn)如下類似錯誤:
只需在float 變量初始化值后加上f后輟即可:
?
成功編譯通過后按上面的步驟再來運(yùn)行一次程序,這個時候可以在串口中看到如下程序運(yùn)行結(jié)果—不使用硬件浮點(diǎn)運(yùn)算單元,浮點(diǎn)數(shù)的運(yùn)算時間明顯加長:
?
到此本節(jié)課就算完成了,相信大家對Cortex-M4的硬件浮點(diǎn)運(yùn)算單元也會有更加深的了解與認(rèn)識。
?
OK,本期實(shí)驗(yàn)完成!下期見!同時如果大家有什么疑問或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個公眾號的同學(xué)們記得加關(guān)注了,會有不定期技術(shù)干貨推出!!
?
文中源碼資料下載,在公眾號里給十三發(fā)消息:
下載|STM32進(jìn)階教程12
?
關(guān)注十三公眾號
?
總結(jié)
以上是生活随笔為你收集整理的STM32 进阶教程 12 - M4的硬件乘法器使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32 进阶教程 11 - RAM中
- 下一篇: STM32 进阶教程 13 – FLAS