關於STM32沒有硬件浮點單元的純經驗之談,是否可以在stm32上用float運算?

STM32儘管在MCU領域算是資源和算力還可以的,但是真的不要把它想的太厲害,因爲它真的只適合做一些簡單的控制。如果希望他實時產生正弦波或者指數或者三角波,最好是事先計算好然後查表。或者就用DSP。。因爲使用math.h庫裏的sin或者exp函數,十分耗時,具體耗時多少,我也沒準確測量。

另外,沒有硬件浮點單元,最好也別用float計算,除非更新頻率很低。筆者粗略的試了一下,對一個浮點乘法,單步仿真至少要點70次左右,而進行一套(1乘1除1加)整數運算,僅需要點7次,也就是說,整數的加、乘運算基本上都可以在1個指令週期內完成(除去指針跳轉),按照數據手冊上說的:

最大的算力是90DMIPS。

 

寫本博客的目的,不是爲了精確得到某個計算的執行時間,而僅僅是爲了給自己提個醒,,別再犯錯。因爲最近在用STM32做帶各種波形的AM調製信號輸出,代替昂貴的DDS,提供低成本的解決方案。希望對看到的朋友們在日後的開發過程中有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章