新聞中心

        stm32發(fā)脈沖

        作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        發(fā)脈沖兩種目的
        1)速度控制
        2)位置控制


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

        發(fā)送脈沖方式為PWM,速率穩(wěn)定而且資源占用少

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


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

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

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


        關(guān)鍵詞: stm32脈

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 安岳县| 临沭县| 浪卡子县| 万盛区| 南充市| 肥乡县| 斗六市| 蒙城县| 信宜市| 景东| 宁国市| 桂东县| 冕宁县| 红河县| 尉犁县| 武清区| 赤峰市| 孝义市| 宁安市| 平和县| 郑州市| 安吉县| 辉南县| 茌平县| 蓬莱市| 奈曼旗| 裕民县| 三亚市| 滁州市| 新绛县| 拉萨市| 宁德市| 永和县| 福泉市| 公主岭市| 会同县| 华亭县| 登封市| 寻乌县| 新津县| 定兴县|