新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stm32 發脈沖

        stm32 發脈沖

        作者: 時間:2016-11-25 來源:網絡 收藏
        發脈沖兩種目的
        1)速度控制
        2)位置控制


        速度控制目的和模擬量一樣,沒有什么需要關注的地方

        發送脈沖方式為PWM,速率穩定而且資源占用少

        stm32位置控制需要獲得發送的脈沖數,有下面4種手段
        1)每發送一個脈沖,做一次中斷計數
        2)根據發送的頻率×發送的時間,獲得脈沖數量,對于變速的脈沖,可以累計積分的方法來獲得總脈沖
        3)一個定時器作為主發送脈沖,另外一個定時器作為從,對發送的脈沖計數
        4)使用DMA方式,例如共發送1000個脈沖,那么定義u16 per[1001],每發送一個脈沖,dma會從數組中更新下一個占空比字,數組最后一個字為0,表示停發脈沖


        上面4種方法的用途和特點
        1)對于低速率脈沖比較好,可以說低速發脈沖的首選,例如10Khz以下的,否則中斷占用太多的cpu,這種方法要注意將中斷優先級提高,否則會丟計數,
        2)用作定時的計時精確高,可以允許有脈沖計數丟失的情況
        3)主從方式,需額外的定時器來計數,例如tim1發脈沖 tim2計數,最方便的方式,無論高速低速即可,同時占用cpu最低,只是要占用多一個定時器
        4)DMA方式也算是一個很確定的方式,不會丟失脈沖,但是高速的時候,會較多的占用內部總線同時會使用一個多余的DMA控制器,而且有個缺點,就是使用起來比較復雜,沒有達到KISS原則

        個人推薦方式,低速時中斷方式,如果不知高速還是低速,則使用主從方式。
        具體的方式需要根據資源和需求來確定。

        stm32定時器算是比較復雜的器件,而且用戶要較多的介入底層,希望將來st公司能夠能夠簡化器件的使用。


        關鍵詞: stm32發脈

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 祁阳县| 河间市| 昌乐县| 尚志市| 冀州市| 巴彦淖尔市| 龙南县| 桂平市| 海原县| 社会| 丹江口市| 渭源县| 西青区| 隆林| 营口市| 额济纳旗| 高阳县| 天镇县| 洛南县| 海淀区| 大姚县| 广元市| 旌德县| 永吉县| 九龙县| 湘阴县| 房产| 施甸县| 富裕县| 易门县| 陵川县| 遂溪县| 商洛市| 临汾市| 汉寿县| 五指山市| 西吉县| 苏尼特左旗| 康定县| 特克斯县| 河北省|