關於STM32 定時器 PWM 即時調節占空比時,預裝載特性

來源:互聯網
上載者:User

標籤:des   style   blog   http   ar   io   sp   on   資料   

 

最近在調試項目的時候遇到一個奇怪的現象:在調試狀態下,給定時器捕獲比較寄存器賦不同值,能產生不同占空比的波形(圖1)。反映到器件上也有不同的電壓顯示,但是在裝置啟動並執行時候,就不行了(圖2)。 

圖1

圖2

糾結了N天后,也沒有辦法解決,只好乖乖的看STM32 控制器手冊找找看了,結果還真找到了。

可以看到,如果使能預裝載特性,則資料會立即寫入寄存器中,如果沒有使能,那就得等到有事件(?)發生了。這我就明白了,在調試狀態下,給寄存器賦值,不會產生什麼影響,因為人的反應速度很慢,但是在啟動並執行時候,占空比是即時發生改變的,這樣就不能及時寫入到捕獲比較寄存器中,輸出就不會改變了。所以在配置定時器輸出PWM的時候,還是乖乖的把預裝載使能吧。代碼原型如下:

/*******************************************************************************

* Function Name  : TIM_OC3PreloadConfig

* Description    : Enables or disables the TIMx peripheral Preload register on CCR3.

* Input          : - TIMx: where x can be  1, 2, 3, 4, 5 or 8 to select the TIM *

                    peripheral.

*                  - TIM_OCPreload: new state of the TIMx peripheral Preload

*                    register

*                    This parameter can be one of the following values:

*                       - TIM_OCPreload_Enable

*                       - TIM_OCPreload_Disable

* Output         : None

* Return         : None

*******************************************************************************/

void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload)

{

  u16 tmpccmr2 = 0;

  /* Check the parameters */

  assert_param(IS_TIM_123458_PERIPH(TIMx));

  assert_param(IS_TIM_OCPRELOAD_STATE(TIM_OCPreload));

  tmpccmr2 = TIMx->CCMR2;

  /* Reset the OC3PE Bit */

  tmpccmr2 &= CCMR_OC13PE_Reset;

  /* Enable or Disable the Output Compare Preload feature */

  tmpccmr2 |= TIM_OCPreload;

  /* Write to TIMx CCMR2 register */

  TIMx->CCMR2 = tmpccmr2;

}

 

 

關於STM32 定時器 PWM 即時調節占空比時,預裝載特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.