最近在做使用dac產生20khz頻率的任意波形,單週期內64點以上,也就是說控制頻率為1.28mhz,為控制dac波形的頻率,使用1.28mhz的定時器中斷,在中斷裡控制dac輸出,最終達到任意波形輸出的效果。
使用stm32f407z 主頻設為160mhz 硬體spi頻率為40mhz,在實際試驗中發現,即使中斷裡不做任何操作,實測定時器中斷頻率最大才1.37mhz7,在中斷裡加入spi輸出控制後,只能達到200khz的中斷頻率,遠遠達不到需要的1.28mhz的中斷控制頻率。即使全部使用暫存器編寫、使用硬體spi+dma、省略了一些標誌位確認操作,中斷頻率也沒有增大多少。
在查詢資料後發現,在stm32f103(主頻為72mhz)中最大中斷頻率為500khz。從中斷觸發-壓棧-中斷向量表-進入中斷處理函式是需要執行很多個指令的。
在硬體除錯中驗證了這個說法,所以stm32407z的最大中斷頻率為1.37mhz左右是正常的(中斷處理函式中沒有執行任何操作的情況下)。
那就沒辦法了啊。。。
STM32外部中斷
一 基本概念 arm coetex m3核心共支援256個中斷,其中16個內部中斷,240個外部中斷和可程式設計的256級中斷優先順序的設定。stm32目前支援的中斷共84個 16個內部 68個外部 還有16級可程式設計的中斷優先順序的設定,僅使用中斷優先順序設定8bit中的高4位。stm32可支援...
stm32外部中斷
外部中斷程式配置流程 rcc 時鐘配置 void rcc configuration void 時鐘配置 開啟各路時鐘 rcc apb2periphclockcmd rcc apb2periph usart1 rcc apb2periph gpioa rcc apb2periph afio,enab...
stm32外部中斷
好久沒玩微控制器了,最近閒著沒事想拿出來玩玩,沒想到乙個stm32的外部中斷讓我花費了兩天時間,好的的挫折啊!終於下午除錯成功,下面來說一下我的除錯之路吧!硬體就是兩個按鍵,四個led,led事共陽極接法,按鍵一端接地一端接gpio口,通過按鍵中斷控制led。程式寫好以後發現始終無法進入中斷,開始查...