国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32H7 開發(fā)筆記】| 02 - 通過定時(shí)器級(jí)聯(lián)方式同步啟動(dòng)多個(gè)定時(shí)器并輸出 PWM 波形

這篇具有很好參考價(jià)值的文章主要介紹了【STM32H7 開發(fā)筆記】| 02 - 通過定時(shí)器級(jí)聯(lián)方式同步啟動(dòng)多個(gè)定時(shí)器并輸出 PWM 波形。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

  • (STM32H723xE/G) 所有定時(shí)器包括兩個(gè)高級(jí)控制定時(shí)器、十二個(gè)通用定時(shí)器、兩個(gè)基本定時(shí)器、五個(gè)低功耗定時(shí)器、兩個(gè)看門狗定時(shí)器和一個(gè)SysTick定時(shí)器 。所有計(jì)時(shí)器計(jì)數(shù)器都可以在Debug模式下凍結(jié)。本次實(shí)驗(yàn)主頻配置的是500MHz

一、分類

1.高級(jí)定時(shí)器(TIM1,TIM8)

高級(jí)控制定時(shí)器(TIM1,TIM8)可以看作是在6通道上復(fù)用的三相PWM發(fā)生器。它們具有互補(bǔ)的PWM輸出,可編程插入死區(qū)時(shí)間。它們也可以被認(rèn)為是完全通用的計(jì)時(shí)器。它們的4個(gè)獨(dú)立通道可用于:

  • 輸入捕獲
  • 輸出比較
  • PWM產(chǎn)生(邊緣或中心對(duì)齊模式)
  • 單脈沖模式輸出

如果配置為標(biāo)準(zhǔn)的16位計(jì)時(shí)器,它們具有與通用TIMx計(jì)時(shí)器相同的功能。如果配置為16位PWM發(fā)生器,它們具有完全調(diào)制能力(0-100%)。高級(jí)控制計(jì)時(shí)器可以與TIMx計(jì)時(shí)器一起工作,通過定時(shí)器鏈接功能進(jìn)行同步或事件鏈接。TIM1和TIM8支持獨(dú)立的DMA請(qǐng)求生成。

2.通用定時(shí)器(TIMx)

通用定時(shí)器(TIMx)在STM32H723xE/G器件中嵌入了10個(gè)可同步的通用定時(shí)器。

  • TIM2,TIM3,TIM4,TIM5,TIM23,TIM24
    該器件包括4個(gè)全功能的通用定時(shí)器:TIM2,TIM3,TIM4,TIM5,TIM23 和 TIM24。TIM2,TIM5,TIM23 和 TIM24基于一個(gè)32位自動(dòng)加載上/下計(jì)數(shù)器和一個(gè)16位預(yù)分級(jí)器,而TIM3和TIM4基于一個(gè)16位自動(dòng)加載上/下計(jì)數(shù)器和一個(gè)16位預(yù)分級(jí)器。所有定時(shí)器都具有4個(gè)獨(dú)立的輸入捕獲/輸出比較通道,PWM或單脈沖模式輸出。這在最大的包上提供了24個(gè)輸入捕獲/輸出比較/PWM。TIM2,TIM3,TIM4,TIM5,TIM23 和 TIM24 通用定時(shí)器可以一起工作,或與其他通用定時(shí)器和高級(jí)控制定時(shí)器 TIM1 和 TIM8 通過定時(shí)器鏈接功能進(jìn)行同步或事件鏈接。這些通用定時(shí)器中的任何一個(gè)都可以用來產(chǎn)生PWM輸出。TIM2、TIM3、TIM4、TIM5、TIM23 和 TIM24都有獨(dú)立的DMA請(qǐng)求生成功能。它們能夠處理正交(增量)編碼器信號(hào)和1到4個(gè)霍爾效應(yīng)傳感器的數(shù)字輸出。
  • TIM12,TIM13,TIM14,TIM15,TIM16,TIM17
    這些計(jì)時(shí)器是基于一個(gè)16位自動(dòng)重載上計(jì)數(shù)器和一個(gè)16位預(yù)縮放器。TIM13,TIM14,TIM16 和 TIM17有一個(gè)獨(dú)立的通道,而 TIM12 和 TIM15 有兩個(gè)獨(dú)立的通道用于輸入捕獲/輸出比較,PWM或單脈沖模式輸出。它們可以與TIM2,TIM3,TIM4,TIM5,TIM23 和 TIM24 全功能通用定時(shí)器同步,或用作簡(jiǎn)單的時(shí)基。

3.基本定時(shí)器(TIM6,TIM7)

基本定時(shí)器 TIM6 和 TIM7 這些定時(shí)器主要用于DAC觸發(fā)和波形生成。它們也可以用作通用的16位時(shí)基。TIM6 和 TIM7 支持獨(dú)立的 DMA 請(qǐng)求生成。

二、定時(shí)器比較

stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)
stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)

三、級(jí)聯(lián)關(guān)系

  • 此處只介紹個(gè)別定時(shí)器級(jí)聯(lián)關(guān)系

stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)

四、定時(shí)器主從模式(STM32CubeMX)配置

1、主定時(shí)器配置(TIM1)

stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)

2、從模式配置(TIM2 其他的從定時(shí)器配置一致)

stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)

五、代碼

1、用戶代碼

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  
  // 需要注意 STM32CubeMX 生成代碼后會(huì)將 TIM1 的初始化放在后面,在同步啟動(dòng)的情況下,需要將主定時(shí)器放在前面
  MX_TIM1_Init();
  MX_TIM2_Init();
  MX_TIM5_Init();
  MX_TIM23_Init();
  MX_TIM24_Init();
  /* USER CODE BEGIN 2 */
  
  // 此 HAL 庫函數(shù)接口每次只會(huì)初始化其中一個(gè)定時(shí)器的一個(gè)通道,并開啟 PWM,但判斷不了是否是由 TIM1來控制同步開啟的
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim23, TIM_CHANNEL_1);
  HAL_TIM_PWM_Start(&htim24, TIM_CHANNEL_1);

  // 開啟 TIM1
  __HAL_TIM_MOE_ENABLE(&htim1);
  __HAL_TIM_ENABLE(&htim1);
  /* USER CODE END 2 */

  /* Infinite loop */

2、修改 HAL 庫函數(shù)代碼

  • 屏蔽啟動(dòng)功能
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
{
  uint32_t tmpsmcr;

  /* Check the parameters */
  assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));

  /* Check the TIM channel state */
  if (TIM_CHANNEL_STATE_GET(htim, Channel) != HAL_TIM_CHANNEL_STATE_READY)
  {
    return HAL_ERROR;
  }

  /* Set the TIM channel state */
  TIM_CHANNEL_STATE_SET(htim, Channel, HAL_TIM_CHANNEL_STATE_BUSY);

  /* Enable the Capture compare channel */
  TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);

  //if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
  //{
  //  /* Enable the main output */
  //  __HAL_TIM_MOE_ENABLE(htim);
  //}

  ///* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
  //if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
  //{
  //  tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
  //  if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
  //  {
  //    __HAL_TIM_ENABLE(htim);
  //  }
  //}
  //else
  //{
  //  __HAL_TIM_ENABLE(htim);
  //}

  /* Return function status */
  return HAL_OK;
}

3、用示波器查看波形

  • 從波形可以看出同步啟動(dòng)時(shí)的延遲不超過3ns

stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)
stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)
stm32 定時(shí)器同步啟動(dòng),STM32,stm32,筆記,單片機(jī)文章來源地址http://www.zghlxwxcb.cn/news/detail-630889.html

到了這里,關(guān)于【STM32H7 開發(fā)筆記】| 02 - 通過定時(shí)器級(jí)聯(lián)方式同步啟動(dòng)多個(gè)定時(shí)器并輸出 PWM 波形的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32H7系列MCU的MPU和Cache功能介紹

    STM32H7系列MCU的MPU和Cache功能介紹

    參考資料 :PM0253 STM32F7 Series and STM32H7 Series Cortex?-M7 processor programming manualV5.0 1.1 MPU 的作用 防止不受信任的應(yīng)用程序訪問受保護(hù)的內(nèi)存區(qū)域; 防止用戶應(yīng)用程序破壞操作系統(tǒng)使用的數(shù)據(jù);通過阻止任務(wù)訪問其它任務(wù)的數(shù)據(jù)區(qū);允許將內(nèi)存區(qū)域定義為只讀,以便保護(hù)重要數(shù)據(jù);

    2024年02月01日
    瀏覽(16)
  • STM32H7使用FileX庫BUG,SD卡掛載失敗

    STM32H7使用FileX庫BUG,SD卡掛載失敗

    使用STM32H7+ThreadX+FileX,之前使用swissbit牌的存儲(chǔ)卡可正常使用,最近項(xiàng)目用了金士頓的存儲(chǔ)卡,發(fā)現(xiàn)無法掛載文件系統(tǒng)。 調(diào)試過程發(fā)現(xiàn),關(guān)閉D-Cache可以掛載使用exfat文件系統(tǒng)。 FileX對(duì)SD卡讀寫接口全部位于fx_stm32_sdio_driver.c中,查看該文件可以發(fā)現(xiàn)在讀寫函數(shù)中已經(jīng)考慮到使用

    2024年04月28日
    瀏覽(27)
  • STM32 CubeMX 無法將 STM32H7 的最大 CPU 頻率設(shè)置為 480 MHz

    STM32 CubeMX 無法將 STM32H7 的最大 CPU 頻率設(shè)置為 480 MHz

    使用stm32cubemx設(shè)置時(shí)鐘樹為480MHz時(shí),提示 cpu clock frequency must be =200MHZ 對(duì)于STM32H7 需要CPU修訂版 為 V 才能達(dá)到 480 MHz 的最大頻率。 使用STM32Programmer查看芯片修訂版,確認(rèn)是V版本: 在STM32CubeMX PinConfiguration 界面修改RCC選項(xiàng),將Product Version設(shè)置為V: 此時(shí)時(shí)鐘樹界面已可以設(shè)置48

    2024年02月16日
    瀏覽(16)
  • STM32H7 SDMMC+FATFS+USBMSC+FREERTOS 虛擬U盤

    STM32H7 SDMMC+FATFS+USBMSC+FREERTOS 虛擬U盤

    通過cubemx配置 實(shí)現(xiàn)STM32H7 SDMMC+FATFS+USBMSC+FREERTOS 虛擬U盤 1.使用FAFTS文件操作系統(tǒng),實(shí)現(xiàn)STM32虛擬U盤,讀寫外部SD卡,fatfs和usb mass storage class共存。 2.請(qǐng)先完成上一個(gè)帖子的步驟 -- 跳轉(zhuǎn)https://blog.csdn.net/hjn0618/article/details/130383593 硬件平臺(tái):正點(diǎn)原子阿波羅 STM32H734IIT6 開發(fā)工具:

    2024年02月10日
    瀏覽(40)
  • 【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    1.1 TIM_InternalClockConfig 1.2 TIM_TimeBaseInit 1.3 TIM_TimeBaseInitTypeDef 1.4 TIM_ClearFlag 1.5 TIM_ITConfig 1.6 TIM_Cmd 1.7 中斷服務(wù)函數(shù) 參考程序 1.8 TIM_ETRClockMode2Config timer.h timer.c main.c timer.h timer.c main.c 09-定時(shí)器定時(shí)中斷.rar 10-定時(shí)器外部時(shí)鐘.rar 參考: 【STM32】江科大STM32學(xué)習(xí)筆記匯總

    2024年02月03日
    瀏覽(97)
  • STM32H7使用QSPI外擴(kuò)flash(linux下使用openocd操作)

    STM32H7使用QSPI外擴(kuò)flash(linux下使用openocd操作)

    根據(jù)安福萊的STM32H7教程,H7單片機(jī)的QSPI外設(shè)是直接連到芯片內(nèi)核上的,地址是0X90000000;那么就可以通過QSPI外設(shè),將外置flash內(nèi)存映射,并由此執(zhí)行代碼。 相關(guān)操作在keil5上比較簡(jiǎn)單,配置點(diǎn)東西就行;可以參考安福萊教程。 這里要介紹的是在linux環(huán)境下沒有keil5 IDE的情況下

    2024年01月16日
    瀏覽(21)
  • STM32H7并行讀取AD7606數(shù)據(jù)以及片內(nèi)AD值不準(zhǔn)解決辦法

    STM32H7并行讀取AD7606數(shù)據(jù)以及片內(nèi)AD值不準(zhǔn)解決辦法

    先了解一下AD7606,16位,單電源,200k采樣率,8路,除了貴沒有其他缺點(diǎn),數(shù)據(jù)相當(dāng)?shù)姆€(wěn),一個(gè)5V供電,不用運(yùn)放的情況下采集電壓精度可以達(dá)到1mv,非常Nice 與單片機(jī)相連 單片機(jī) 調(diào)用代碼 測(cè)試發(fā)現(xiàn)AD采集到的電壓要遠(yuǎn)小于實(shí)際電壓,H7的AD還是16位的,不能這么拉跨吧,在網(wǎng)上

    2024年02月11日
    瀏覽(25)
  • STM32速成筆記—定時(shí)器

    STM32速成筆記—定時(shí)器

    ?? 文章作者:二土電子 ?? 關(guān)注文末公眾號(hào)獲取其他資料和工程文件! ?? 期待大家一起學(xué)習(xí)交流! 關(guān)于什么是定時(shí)器,簡(jiǎn)單來講,就是是用來定時(shí)的。STM32F103ZET6有兩個(gè)基本定時(shí)器TIM6和TIM7,四個(gè)通用定時(shí)器TIM2~TIM5和兩個(gè)高級(jí)定時(shí)器TIM1,TIM8。每一個(gè)定時(shí)器都是完全獨(dú)立的

    2024年02月09日
    瀏覽(20)
  • 【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)

    【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)

    定時(shí)器可以對(duì)輸入的時(shí)鐘進(jìn)行計(jì)數(shù),并在計(jì)數(shù)值達(dá)到設(shè)定值時(shí)觸發(fā)中斷 16位計(jì)數(shù)器、預(yù)分頻器、自動(dòng)重裝寄存器的時(shí)基單元,在72MHz計(jì)數(shù)時(shí)鐘下可以實(shí)現(xiàn)最大59.65s的定時(shí) 不僅具備基本的定時(shí)中斷功能,而且還包含內(nèi)外時(shí)鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)

    2024年02月09日
    瀏覽(26)
  • STM32筆記----5、TIM定時(shí)器

    STM32筆記----5、TIM定時(shí)器

    時(shí)基單元:由自動(dòng)重裝載寄存器、預(yù)分頻器、計(jì)數(shù)器組成。 來自RCC的TIMxCLK:一般是系統(tǒng)的主頻,72MHz。 預(yù)分頻器(16位):對(duì)進(jìn)來的頻率進(jìn)行分頻,寫0,不分頻,輸出72MHz。寫1,2分頻,輸出36MHz。以此類推。 計(jì)數(shù)器(16位):對(duì)預(yù)分頻器后的計(jì)數(shù)時(shí)鐘進(jìn)行計(jì)數(shù)。 自動(dòng)重裝載

    2024年01月22日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包