PWM、脈沖

要求:

一、PWM輸出

?

PWM波生成原理

在此處使用TIM2生成PWM,PA1輸出PWM波。CNT小于CCR時,輸出高電平;CNT大于CCR時,輸出低電平。?

輸入捕獲測量頻率的原理

輸入捕獲的捕獲意思是它在PWM波上升沿或者下降沿的時候,會產生一個中斷。這里設置為每遇到一個上升沿產生一次中斷。

問:如何獲取周期T

答:在上升沿(中斷)產生的時候,將CNT置0,在下一個上升沿(中斷)產生的時候,讀取CNT的值,并將該CNT的值存放在一個變量capture_value(捕獲值)中,這樣就可以計算周期T了。

CNT加1,所耗費的時間

應用:測量定時器產生PWM波的頻率。

?通過PA15這個引腳來進行一個定時器的輸入捕獲,去測量555定時器產生的PWM波的一個頻率。

PWM頻率可調是通過電位器R40來調整的

此次輸入捕獲分為兩個部分

1、配置PA15、PB4?這兩個引腳,去輸入捕獲兩個信號發生器(555定時器U8、U7)產生的PWM波,測量該PWM波的頻率。

2、重新定義一個引腳(PA7)去測量PA1輸出的PWM波的頻率。(需要在PA7和PA1這兩個引腳之間連上一根杜邦線)

問題

預分頻的大小要介于可以測量高頻率和低頻信號不會溢出

為了準確地測量信號的變化,捕獲定時器的頻率必須至少高于輸入信號的頻率

第一部分:

HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)?是STM32 HAL庫中用于處理輸入捕獲(Input Capture)事件的回調函數。當定時器捕獲到輸入信號時,該回調函數會被調用。

調用時機

  1. 輸入捕獲事件

    • 當定時器配置為輸入捕獲模式時,如果捕獲到信號邊沿(上升沿或下降沿),定時器會將當前計數器的值存入捕獲寄存器,并觸發中斷。

    • 此時,HAL庫會調用?HAL_TIM_IC_CaptureCallback?函數。

  2. 中斷觸發

    • 輸入捕獲事件會觸發定時器的中斷,HAL庫在中斷服務程序(ISR)中處理捕獲事件,并調用回調函數。

典型應用場景

  • 測量脈沖寬度

    • 通過捕獲信號的上升沿和下降沿,計算兩次捕獲之間的時間差,從而測量脈沖寬度。

  • 頻率測量

    • 通過捕獲兩個連續上升沿或下降沿的時間差,計算輸入信號的頻率。

  • 事件計時

    • 記錄外部事件發生的時間戳。

在STM32的定時器中,CCR(Capture/Compare Register,捕獲/比較寄存器)?是用于輸入捕獲和輸出比較功能的關鍵寄存器。在輸入捕獲模式下,CCR 中存儲的值是?定時器計數器(TIMx_CNT)?在捕獲事件發生時的值。


CCR 里面裝的是什么值?

在輸入捕獲模式下:

  • 當捕獲事件發生時(例如,檢測到上升沿或下降沿),定時器的當前計數器值(TIMx_CNT)會被自動復制到 CCR 寄存器中。

  • 因此,CCR 中存儲的值是?捕獲事件發生時定時器計數器的值


輸入捕獲,捕獲的是什么值?

輸入捕獲功能的核心是?捕獲外部信號的邊沿事件,并記錄此時定時器計數器的值。具體來說:

  1. 捕獲的信號

    • 輸入捕獲功能通過定時器的輸入通道(如 TIMx_CH1、TIMx_CH2 等)捕獲外部信號的?邊沿(上升沿、下降沿或雙邊沿)。

    • 邊沿的類型由定時器的配置決定(例如,配置為上升沿捕獲、下降沿捕獲或雙邊沿捕獲)。

  2. 捕獲的值

    • 當捕獲到指定的邊沿時,定時器的當前計數器值(TIMx_CNT)會被鎖存到 CCR 寄存器中。

    • 這個值可以用來計算:

      • 脈沖寬度:通過捕獲上升沿和下降沿的計數器值,計算兩者之差。

      • 信號周期:通過捕獲兩個連續上升沿(或下降沿)的計數器值,計算兩者之差。

      • 事件時間戳:記錄某個事件發生的時刻(以定時器計數器的值為單位)。


輸入捕獲的工作原理

  1. 配置定時器

    • 定時器以一定的頻率計數(由預分頻器和自動重裝載值決定)。

    • 配置輸入捕獲通道,設置捕獲邊沿(上升沿、下降沿或雙邊沿)。

  2. 捕獲事件發生

    • 當外部信號滿足捕獲條件(例如,檢測到上升沿)時,定時器的當前計數器值(TIMx_CNT)會被鎖存到 CCR 寄存器中。

    • 同時,定時器會觸發一個中斷或 DMA 請求。

  3. 讀取 CCR 的值

    • 在中斷服務程序或回調函數中,讀取 CCR 的值,用于后續計算(如脈沖寬度、信號周期等)。


示例:測量脈沖寬度

假設定時器配置為上升沿和下降沿捕獲:

  1. 第一次捕獲

    • 當檢測到上升沿時,定時器的計數器值?TIMx_CNT?被鎖存到 CCR1 中。

    • 假設此時?CCR1 = 1000

  2. 第二次捕獲

    • 當檢測到下降沿時,定時器的計數器值?TIMx_CNT?被鎖存到 CCR2 中。

    • 假設此時?CCR2 = 3500

  3. 計算脈沖寬度

    • 脈沖寬度 =?CCR2 - CCR1 = 3500 - 1000 = 2500

    • 如果定時器的計數頻率為 1 MHz(每個計數代表 1 μs),則脈沖寬度為 2500 μs。


總結

  • CCR 中存儲的值:捕獲事件發生時定時器計數器的值(TIMx_CNT)。

  • 輸入捕獲的功能:捕獲外部信號的邊沿,并記錄此時定時器計數器的值。

  • 典型應用:測量脈沖寬度、信號周期或記錄事件時間戳。

通過合理配置定時器和分析 CCR 的值,可以實現精確的時間測量和信號分析。

第二部分(新建一個項目):?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92787.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

文件IO(1)

.文件IO1.概念標準IO是有緩存的IO,文件IO沒有緩存,適合于通信、硬件設備操作標準IO是庫函數,文件IO是系統調用2.系統調用與庫函數系統調用:是Linux內核中的代碼,只能在Linux系統中使用庫函數:是對系統調用的…

【AI】Pycharm中要注意Python程序文件的位置

博主試著在本地電腦用Pycharm環境運行隨便一個機器學習然后做圖像識別的模型,Python的程序一直報博主學習圖片的路徑不正確,博主查了好幾遍,也沒找出問題,后來借助Deepseek才知道,Python主程序的位置一定要在Project下…

TDengine 可觀測性最佳實踐

TDengine 介紹 TDengine 是一款開源、高性能、云原生的時序數據庫,專為物聯網、車聯網、工業互聯網、金融、IT 運維等場景優化設計。它不僅提供了高效的數據存儲和查詢功能,還帶有內建的緩存、流式計算、數據訂閱等系統功能,能大幅減少系統設…

Jenkins 搭建鴻蒙打包

1、創建流水線工程 選擇 Freestyle project 2、配置模板倉庫、憑證 配置倉庫地址 創建憑證,憑證選擇賬號-密碼(能夠訪問該倉庫的個人或管理員 Gitlab 賬密) 到這里執行構建,便可以克隆倉庫到工作目錄 3、安裝插件 3.1 Rebuild…

【SpringBoot】02 基礎入門-什么是Spring Boot?:Spring與SpringBoot

文章目錄1、Spring能做什么1.1、Spring的能力1.2、Spring的生態1.3、Spring5重大升級1.3.1、響應式編程1.3.2、內部源碼設計2、為什么用SpringBoot2.1、SpringBoot優點2.2、SpringBoot缺點3、時代背景3.2、分布式分布式的困難分布式的解決3.3、云原生上云的困難4、如何學習Spri…

FFmpeg 編譯安裝和靜態安裝

FFmpeg 編譯安裝和靜態安裝 簡介 FFmpeg 是一個領先的多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流化、過濾和播放幾乎所有人類和機器創建的格式。本指南將詳細介紹如何在 CentOS 8.5.2111 系統上從源代碼編譯并安裝 FFmpeg 6.1.1 版本。從源代碼編譯安裝可…

人大BABEC地平線高效率具身導航!Aux-Think:探索視覺語言導航中數據高效的推理策略

作者: Shuo Wang1,3^{1,3}1,3, Yongcai Wang1^{1}1, Wanting Li1^{1}1 , Xudong Cai1^{1}1, Yucheng Wang3^{3}3, Maiyue Chen3^{3}3, Kaihui Wang3^{3}3, Zhizhong Su3^{3}3, Deying Li1^{1}1, Zhaoxin Fan2^{2}2單位:1^{1}1中國人民大學,2^…

01. maven的下載與配置

1.maven的下載與初步配置a.下載并配置倉庫地址下載maven壓縮包,并解壓,解壓后應有如下幾個文件點擊conf,打開settings.xml(我用的VScode打開的),我們需要聲明一下內部倉庫的地址,以及私服的一些…

1701. 請輸出所有的3位對稱數

問題描述請輸出所有的 33 位對稱數,對稱數指的是一個整數 nn 正過來和倒過來是一樣的,比如:101、121、282…101、121、282…請從小到大輸出符合條件的3位對稱數,每行 11 個。輸入無。輸出從小到大按題意輸出符合條件的數&#xff…

C++算法·排序

排序的定義 這個不用說吧 就是根據某個條件對一個數列進行有序的操作 例如要求從小到大排序、從大到小排序等等 排序的分類 比較排序(Comparison(Comparison(Comparison Sorts)Sorts)Sorts) 特點:通過元素間的比較決定順序 時間復雜度下限:O(nO(nO(n…

微服務項目中的注冊中心——Nacos配置

從零開始:Nacos服務注冊與配置中心實戰教程 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴開源的服務發現、配置管理工具,集注冊中心與配置中心于一體,廣泛應用于微服務架構。本文將從環境搭建到實戰配…

日期格式化成英文月,必須指定語言環境

如果不指定Locale.ENGLISH 在有些JDK下 輸出6月 INV USD 314,791.77,DUE 25-07 [PAID USD 503,389.56 ON 2025-07-16]Mar INV USD 52,042.00,DUE 25-07 [PAID USD 52,042.00 ON 2025-08-11]所以必…

【6】Transformers快速入門:Transformer 的注意力層 是啥?

一句話看懂注意力層作用:讓 AI 像人一樣 “抓重點” (比如讀“貓追老鼠”,自動聚焦 “追” 這個動作,忽略無關詞)1. 為什么需要注意力? 問題場景(翻譯例子): 英文&#x…

集合,完整擴展

目錄 前言: 一、List接口 1.1 ArrayList 1.2 LinkedList 1.3 Vector 二、Set接口 2.1 HashSet 2.2 TreeSet 2.3 LinkedHashSet 三、應用選擇 前言: 本篇文章重點梳理 List 接口和 Set 接口的核心內容,結合代碼案例幫大家吃透它們的…

【doris基礎與進階】3-Doris安裝與部署

安裝前的準備 在windows系統上通過vmwareubuntu 22.04的方式進行安裝,由于資源有限,在同1臺機器上同時安裝fe和be(broker本次不安裝,極簡化安裝),安裝版本為2.1.10,2.x版本架構不會有大的變化&a…

關于數據結構6-哈希表和5種排序算法

哈希表1哈希算法將數據通過哈希算法映射成一個鍵值,存取都在同一個位置實現數據的高效存儲和查找,將時間復雜度盡可能降低至O(1)2哈希碰撞多個數據通過哈希算法得到的鍵值相同,成為產生哈希碰撞3哈希表:構建哈希表存放0-100之間的…

AWT與Swing深度對比:架構差異、遷移實戰與性能優化

全面對比分析Java AWT與Swing GUI框架的架構差異、性能表現和適用場景,提供完整的AWT到Swing遷移實戰指南,包含15代碼示例、性能測試數據、最佳實踐建議,助你做出明智的技術選型和實現平滑遷移。 Java AWT, Swing, GUI框架對比, 代碼遷移, 性…

git倉庫檢測工具

介紹 Gitleaks 是一款用于檢測git 倉庫、文件以及任何你想通過 git 傳遞的信息(例如密碼、API 密鑰和令牌)的工具stdin。如果你想了解更多關于檢測引擎工作原理的信息,請查看這篇博客:正則表達式(幾乎)就是你所需要的一切。 ? ~/code(master) gitleaks git -v○│╲│…

【4】Transformers快速入門:自然語言模型 vs 統計語言模型

一句話關系總結 統計語言模型 自然語言模型的“數學基礎” (就像加減乘除是數學的基礎,統計模型是AI學說話的基礎工具)區別對比表(小白版)維度統計語言模型自然語言模型本質用數學公式算句子概率用神經網絡模仿人腦理…

[激光原理與應用-252]:理論 - 幾何光學 - 傳統透鏡焦距固定,但近年出現的可變形透鏡(如液態透鏡、彈性膜透鏡)可通過改變自身形狀動態調整焦距。

一、液態透鏡:電潤濕效應驅動曲率變化基本結構液態透鏡由兩種互不相溶的液體(如導電水溶液與絕緣硅油)封裝在透明圓筒形容器中構成。容器壁經疏水處理,使水溶液呈圓頂型聚集在中心,與硅油形成凸狀曲面。工作原理電潤濕…