0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實(shí)現(xiàn)指定個(gè)數(shù)脈沖輸出的四種模式

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-07-24 17:56 ? 次閱讀

在實(shí)際產(chǎn)品開發(fā)中有時(shí)可能需要實(shí)現(xiàn)一些指定個(gè)數(shù)脈沖的輸出,這里介紹幾種基于定時(shí)器的實(shí)現(xiàn)方式。

1、 利用RCR寄存器結(jié)合單脈沖模式;

2、 利用DMA實(shí)時(shí)修改CCR寄存器的模式;

3、 利用定時(shí)器主從模式;

4、 利用中斷對脈沖實(shí)現(xiàn)計(jì)數(shù)模式;

一、利用RCR結(jié)合單脈沖模式

這種方式僅限于帶RCR寄存器的高級定時(shí)器,配合單脈沖模式,實(shí)現(xiàn)起來非常方便。

基本原理:計(jì)數(shù)器發(fā)生RCR+1個(gè)溢出動作后觸發(fā)更新事件,在單脈沖模式下,定時(shí)器發(fā)生更新事件時(shí)將停止計(jì)數(shù)并實(shí)現(xiàn)指定個(gè)數(shù)的脈沖輸出。

d76f26dc-0b34-11ed-ba43-dac502259ad0.png

參考配置:

d790d962-0b34-11ed-ba43-dac502259ad0.png

d7bbc744-0b34-11ed-ba43-dac502259ad0.png

HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);//TIM1通道1輸出一串脈沖。

d7e194f6-0b34-11ed-ba43-dac502259ad0.png

二、利用DMA實(shí)時(shí)修改CCR寄存器的模式;

基本原理:基于定時(shí)器事件觸發(fā)DMA從而動態(tài)修改CCR寄存器的值最終實(shí)現(xiàn)指定個(gè)數(shù)的脈沖輸出。

下面示例使用定時(shí)器更新事件觸發(fā)DMA,輸出10個(gè)脈寬各不一樣的脈沖.

uint16_tDataforCCr[]={25,43,18,65,27,44,66,38,76,11,00};

參考配置:

d7ff68fa-0b34-11ed-ba43-dac502259ad0.png

TIM_CCxChannelCmd(htim3.Instance, TIM_CHANNEL_1,TIM_CCx_ENABLE);

__HAL_TIM_CLEAR_FLAG(&htim3, TIM_FLAG_UPDATE);

__HAL_TIM_ENABLE_DMA(&htim3, TIM_DMA_UPDATE);

HAL_DMA_Start(&hdma_tim3_up,(uint32_t)DataforCCr, (uint32_t)&htim3.Instance->CCR1, 11);

__HAL_TIM_ENABLE(&htim3);

TIM3->EGR = TIM_EGR_UG;

d833e9fe-0b34-11ed-ba43-dac502259ad0.png

眼尖的人可能發(fā)現(xiàn)上圖中最后有個(gè)額外的尖脈沖,那是因?yàn)檫@里是基于更新事件觸發(fā)DMA,DMA傳輸新數(shù)據(jù)過來時(shí)有點(diǎn)延遲導(dǎo)致下一個(gè)PWM脈沖已經(jīng)發(fā)生作用。這時(shí),我們可以調(diào)整觸發(fā)事件,比方這里將觸發(fā)事件調(diào)整為比較事件,并開啟預(yù)裝功能即可以消除這個(gè)問題。上面測試過程是關(guān)閉了CCR寄存器的預(yù)裝功能的。

該方式可以做到非常靈活精準(zhǔn),但要多用個(gè)DMA外設(shè)。

三、利用定時(shí)器主從模式

基本原理:利用兩個(gè)定時(shí)器級聯(lián)成主從模式,一個(gè)定時(shí)器輸出門控信號,控制另外一個(gè)定時(shí)器的計(jì)數(shù)工作。

d856fa84-0b34-11ed-ba43-dac502259ad0.png

下面TIM4工作在主模式,其OC輸出作為觸發(fā)信號給到TIM8,TIM8工作在門控模式。

TIM_CCxChannelCmd(htim4.Instance, TIM_CHANNEL_1,TIM_CCx_ENABLE);

__HAL_TIM_ENABLE(&htim4);

TIM_CCxChannelCmd(htim8.Instance, TIM_CHANNEL_1, TIM_CCx_ENABLE);

__HAL_TIM_MOE_ENABLE(&htim8);

__HAL_TIM_ENABLE(&htim8);

d8743df6-0b34-11ed-ba43-dac502259ad0.png

d8a08f3c-0b34-11ed-ba43-dac502259ad0.png

此模式實(shí)現(xiàn)起來簡單快捷,但當(dāng)門控信號時(shí)鐘與從定時(shí)器時(shí)鐘缺乏同步關(guān)系時(shí),輸出脈沖個(gè)數(shù)可能有偏差,尤其結(jié)尾的電平可能搖擺不定。

四、利用定時(shí)器中斷模式

基本原理:基于定時(shí)器更新事件或比較事件對脈沖個(gè)數(shù)進(jìn)行實(shí)時(shí)計(jì)數(shù),到達(dá)指

定數(shù)據(jù)后通過修改CCR或ARR寄存器的值來停止后續(xù)PWM的輸出。具體操

作需結(jié)合PWM輸出模式和最后希望停止輸出時(shí)的電平來對CCR進(jìn)行賦值。

d8cc901e-0b34-11ed-ba43-dac502259ad0.png

比如:輸出10個(gè)脈沖,最后電平停留在高電平。我們可以基于比較事件來對脈沖進(jìn)行,并開啟CCR寄存器的預(yù)裝功能。若選用PWM1模式,極性選擇為高有效,向上計(jì)數(shù)模式時(shí),則在第10個(gè)比較中斷里修改CCR=ARR+n[n大于等于1];若選用PWM2模式,極性選擇為高有效,則在第10個(gè)比較中斷里修改CCR=00。

該模式實(shí)現(xiàn)起來較為簡單,只需對定時(shí)器有些基本的了解即可,無需涉及定時(shí)器更多知識及DMA方面的應(yīng)用等。

上面大體介紹了利用STM32定時(shí)器實(shí)現(xiàn)指定個(gè)數(shù)脈沖輸出的四種模式,各有特色,供君參考。我們實(shí)際應(yīng)用中可以靈活采用。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354289
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3231

    瀏覽量

    114326
  • 脈沖輸出
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    10753

原文標(biāo)題:使用定時(shí)器輸出指定個(gè)數(shù)脈沖的幾種方式

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    DDS AD9910的四種工作調(diào)制模式是什么意思

    DDS AD9910的四種工作調(diào)制模式是什么意思?說是有單頻模式數(shù)字斜坡模式RAM模式 和并行模式
    發(fā)表于 07-16 19:37

    請問DDS AD9910上的四種工作模式是什么意思,有什么區(qū)別?

    DDS AD9910的四種工作調(diào)制模式是什么意思?說是有單頻模式數(shù)字斜坡模式RAM模式 和并行模式
    發(fā)表于 12-04 09:07

    STM32芯片GPIO的四種輸入模式四種輸出模式

    STM32芯片的GPIO一共有8配置模式,對8模式的理解如下1.四種輸入模式上拉輸入:在默認(rèn)
    發(fā)表于 05-21 07:55

    單片機(jī)四種輸入模式

    單片機(jī)四種輸入模式 MCU輸入模式有浮空、上拉、下拉、模擬輸入這四種模式,如果采用上拉或者下拉模式
    發(fā)表于 08-24 16:19

    變頻器主要支持四種模式

    變頻器主要支持四種模式:無PG的V/F模式,有PG的V/F模式,無PG的矢量控制模式,有PG的矢量模式
    發(fā)表于 09-03 06:57

    怎樣使用定時(shí)器輸出指定個(gè)數(shù)的PWM脈沖

    怎樣使用定時(shí)器輸出指定個(gè)數(shù)的PWM脈沖?
    發(fā)表于 12-21 06:55

    怎樣使用定時(shí)器輸出指定個(gè)數(shù)的PWM脈沖

    在步進(jìn)電機(jī)控制時(shí),經(jīng)常會遇到需要輸出指定個(gè)數(shù)脈沖實(shí)現(xiàn)精確控制。本篇文章將介紹怎樣使用定時(shí)器輸出
    發(fā)表于 01-06 06:19

    二維碼的四種主要應(yīng)用模式

    本文介紹二維碼主要的四種應(yīng)用模式,包括讀取數(shù)據(jù)模式、解碼上網(wǎng)模式、解碼驗(yàn)證模式、解碼通信模式。
    發(fā)表于 01-25 11:52 ?3402次閱讀

    STC單片機(jī)如何實(shí)現(xiàn)輸出固定的脈沖個(gè)數(shù)

    實(shí)現(xiàn)方法:運(yùn)用PWM輸出功能輸出一定頻率(F)的脈沖,在一定的時(shí)間、以一定的頻率輸出脈沖
    發(fā)表于 10-24 15:43 ?1w次閱讀
    STC單片機(jī)如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>輸出</b>固定的<b class='flag-5'>脈沖</b><b class='flag-5'>個(gè)數(shù)</b>

    STM32如何實(shí)現(xiàn)可調(diào)頻率、 占空比的PWM波形,且可指定輸出脈沖個(gè)數(shù)

    STM32如何實(shí)現(xiàn)可調(diào)頻率、占空比的PWM波形,且可指定輸出脈沖個(gè)數(shù)
    的頭像 發(fā)表于 03-12 11:04 ?2.7w次閱讀

    四種方式實(shí)現(xiàn)led點(diǎn)亮

    四種方式實(shí)現(xiàn)led點(diǎn)亮
    發(fā)表于 01-04 14:31 ?4次下載

    IEC 61851標(biāo)準(zhǔn)中的四種EV充電模式

    在本文中,我們將了解國際電工委員會 (IEC) 規(guī)定的不同 EV 充電模式。這些模式在處理電動汽車傳導(dǎo)充電系統(tǒng)的 IEC 61851 標(biāo)準(zhǔn)中指定。該標(biāo)準(zhǔn)描述了四種不同的充電
    的頭像 發(fā)表于 06-24 15:06 ?9525次閱讀
    IEC 61851標(biāo)準(zhǔn)中的<b class='flag-5'>四種</b>EV充電<b class='flag-5'>模式</b>

    GPIO的四種輸入模式介紹

    32位寄存器共同控制。 輸出和輸入都是針對芯片引腳來講的(即引腳的對外輸出,和外界對引腳的輸入)。 四種輸入模式介紹 輸入模式下可讀取端口的
    的頭像 發(fā)表于 11-09 16:51 ?6152次閱讀
    GPIO的<b class='flag-5'>四種</b>輸入<b class='flag-5'>模式</b>介紹

    介紹MCUboot支持的四種升級模式(2)

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執(zhí)行。由于FSP不支持第四種——加載到RAM中執(zhí)行,因?yàn)槲覀冎攸c(diǎn)介紹前三
    的頭像 發(fā)表于 06-13 10:56 ?743次閱讀
    介紹MCUboot支持的<b class='flag-5'>四種</b>升級<b class='flag-5'>模式</b>(2)

    關(guān)于溫補(bǔ)晶振的四種輸出模式詳解

    TCXO(溫度補(bǔ)償晶振)作為一高精度時(shí)鐘源,其獨(dú)特的溫度補(bǔ)償技術(shù)使其在各種環(huán)境條件下都能保持穩(wěn)定的頻率輸出。華昕晶振將詳細(xì)介紹TCXO的四種主要輸出
    的頭像 發(fā)表于 07-27 08:34 ?382次閱讀
    關(guān)于溫補(bǔ)晶振的<b class='flag-5'>四種</b><b class='flag-5'>輸出</b><b class='flag-5'>模式</b>詳解