色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用筆記 | STM32使用DMA產生PWM時波形異常分析

STM32單片機 ? 來源:未知 ? 2023-09-22 17:05 ? 次閱讀

29761040-5926-11ee-939d-92fbcf53809c.gif

關鍵字:回調函數,HAL庫

目錄預覽

1.前言

2.實驗

3.使用實例

4.小結

01 前言

有客戶反饋,使用STM32F4的TIM2結合DMA,產生的PWM波形不符合預期,但是相同的配置使用在TIM3上,得到的PWM波形就是符合預期的。其代碼和配置都是從F1移植過來的,在F1上使用TIM2是沒有問題的,對于F4的TIM2發生的問題,客戶一直沒有找到根本原因。

02

實驗

根據客戶的反饋,我們進行了實驗。

硬件:STM32F401RE-NUCLEO

在STM32CubeMX中,將TIM2和TIM3所有參數均做相同的配置,其中配置DMA兩端均為halfword長度。

2981025c-5926-11ee-939d-92fbcf53809c.png

29a89e48-5926-11ee-939d-92fbcf53809c.png

生成代碼,并定義兩個數組如下圖所示:

29c57252-5926-11ee-939d-92fbcf53809c.png

在主函數中開啟Timer。

29e214a2-5926-11ee-939d-92fbcf53809c.png

我們可以發現,實驗結果如客戶反饋的,TIM2輸出的PWM是不正確的,TIM3輸出的PWM是正確的。

2a022026-5926-11ee-939d-92fbcf53809c.png

03 分析

我們的實驗中,TIM2和TIM3的配置是完全一樣的,即使傳輸相同的數據,得到的PWM波形也是不同的。為此我們比較了TIM2和TIM3的硬件屬性,可以很容易查看出,TIM2的計數器是32bit的,而TIM3的計數器是16bit的。

我想我們已經知道答案了,TIM2的計數器是32bit的,但是我們配置的DMA是halfword長度,這在AHB總線上解析數據時產生了非預期的結果。在調試界面我們也能看到,當問題發生時,TIM2的CCR1竟然比ARR的值要大,或者出現異常值,所以出現異常波形。

2a1fdee0-5926-11ee-939d-92fbcf53809c.png

根本原因在于,對于大部分STM32系列,主設備基于AHB外設進行尋址是不支持byte/half-word傳輸的,總線會強制將數據轉化為32bit傳送到總線上,這就是為什么我們看到CCR1的高半字和低半字的值是相同的原因。

當我們將TIM2的DMA外設端修改為word長度,并將內存數組定義為32bit,再次實驗,可以發現PWM的波形就是正常的了:

2a36b39a-5926-11ee-939d-92fbcf53809c.png

2a666b44-5926-11ee-939d-92fbcf53809c.png

2a79522c-5926-11ee-939d-92fbcf53809c.png

04 小結

因為F103上沒有32bit計數器的Timer,所以客戶在F103上并沒有出現類似的問題。在使用DMA訪問經過AHB轉APB的橋接外設時,我們要注意DMA對外設的訪問寬度配置問題。

完整內容請點擊“閱讀原文”下載原文檔。


原文標題:應用筆記 | STM32使用DMA產生PWM時波形異常分析

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44617

    瀏覽量

    638197
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5197

    瀏覽量

    214751
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357404

原文標題:應用筆記 | STM32使用DMA產生PWM時波形異常分析

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CDK應用筆記

    電子發燒友網站提供《CDK應用筆記.pdf》資料免費下載
    發表于 01-16 16:17 ?0次下載
    CDK應<b class='flag-5'>用筆記</b>

    S32K3xxICU應用筆記

    S32K3xxICU應用筆記
    發表于 12-30 15:38 ?0次下載

    STM32產生的1Mhz PWM波作為時鐘信號,波形較差怎么解決?

    我用STM32產生的1Mhz PWM波作為時鐘信號,波形較差,然后代碼參考CSDN的一位博主的,當我讀取校準電阻時,通過串口發送至電腦串口讀取時,都是0,不知是何原因,寄存器的配置檢
    發表于 12-09 07:09

    PWM波形的特性與優化

    PWM波形的特性 1. 定義與基本原理 PWM是一種通過改變脈沖寬度來控制輸出電壓或電流的技術。在PWM信號中,一個周期內,脈沖的高電平(ON時間)和低電平(OFF時間)的持續時間可以
    的頭像 發表于 11-29 09:13 ?647次閱讀

    波形產生電路的工作原理是什么

    波形產生電路是電子學中一個非常重要的概念,它涉及到將電信號轉換成特定波形的電路設計。波形產生電路可以產生
    的頭像 發表于 09-25 16:17 ?1665次閱讀

    芯海CSU18P88應用筆記

    本應用筆記旨在為用戶提供關于CSU18P88的詳細信息和使用指南,幫助用戶快速開發基于CSU18P88的應用。*附件:CSU18P88應用筆記V1.5.pdf
    發表于 05-16 10:24

    CSU18MX86應用筆記

    本應用筆記旨在為用戶提供關于CSU18MX86的詳細信息和使用指南,幫助用戶快速開發基于CSU18MX86的應用。*附件:CSU18MX86應用筆記_V1.0.pdf
    發表于 05-16 10:21

    如何通過DMA方式在任意GPIO引腳產生PWM波?

    用定時器2的通道1的PWM功能,但不產生CH1的實際輸出。而是在定時器2的更新回調函數和比較回調函數里分別置高/置低指定的GPIO引腳。 后來發現,有can接收中斷時,輸出的pwm波形
    發表于 04-19 06:09

    STM32F030 MDA+PWM驅動ws2812b,起始的50US的低電平是怎么產生

    STM32F030 MDA+PWM 驅動 ws2812b,起始的50US的低電平怎么產生? 現在dma+pwm,倒是可以產生一個800K h
    發表于 04-12 07:23

    f446rct6在使用dma控制pwm占空比時,pwm波形異常的原因?

    需要更新數據時,啟動一次dma傳輸 現象:pwm波的頻率,占空比沒有問題,但是在啟動dma傳輸的第一個或第二個波形,經常會 出現一個三角形的奇怪
    發表于 04-09 07:45

    STM32G070CB TIM1使用DMA 方式來產生PWM不同duty的波形,無法進入中斷的原因?

    TIM1使用DMA 方式來產生PWM不同duty 的波形,想監控一下DMA 是否完成,但是無法進入中斷。以下初始化的配置:(
    發表于 03-20 08:28

    STM32F051C8 PA0不能以DMA的方式輸出PWM,沒有正確波形輸出是哪里出了問題?

    ,新建工程,選擇型號STM32F051C8; 選擇內部時鐘,配置時鐘為48Mhz, 配置TIM2 CH1為DMA PWM輸出; 生成代碼后,加入WS2812b的應用代碼;在main函數里增加
    發表于 03-13 06:20

    STM32U575 pwmDMA輸出的波形少一段怎么處理?

    這是我的 DMA 的配置 這是我的PWM配置 上面的波形是F103輸出的波形。 下面的波形是U575輸出的
    發表于 03-13 06:10

    STM32F407上使用DMA給TIM2的CCR4寫值,高位出現0x64沒有波形產生怎么處理?

    STM32F407上使用DMA給TIM2的CCR4寫值,輸出固定個數PWM波個數時,遇見了CCR4的高位與低位同時被寫入相同的值,如圖所示 在DEBUG時可以看見CCR4的高16位與低16位同時被賦值了,但是在內存中,我只存
    發表于 03-11 08:04

    STM32H750如何使用DMA改變PWM占空比?

    我想在PWM上溢和下溢時,從數組里讀出數據更新PWM占空比。STM32CubeMX配置沒有找到DMA的觸發源,及源地址的設定
    發表于 03-06 07:36
    主站蜘蛛池模板: 国产免费毛片在线观看 | 达达兔午夜一级毛片 | 超级最爽的乱淫片免费 | 亚洲成年人在线观看 | 麻豆第一区MV免费观看网站 | 亚洲综合日韩在线2019 | ppypp日本欧美一区二区 | 伊人色综合久久天天网 | 青草久久影院 | 欧美亚洲精品午夜福利AV | 一本之道高清视频在线观看 | 99久久免费看少妇高潮A片 | 国产成人ae在线观看网站站 | 国产成人a一在线观看 | 777琪琪午夜理论电影网 | 日韩一卡二卡三卡四卡免费观在线 | 日本亚洲中文字幕无码区 | gratis videos欧美最新 | 一一本之道高清视频在线观看中文字幕 | 果冻传媒MV免费播放在线观看 | 国产36d在线观看 | 久久久久久久久性潮 | 午夜福利理论片在线播放 | 青青青青草 | 国产一区二区免费在线观看 | 国产精品爽爽久久久久久蜜桃网站 | 亚洲高清国产拍精品5g | 中国老太婆xxxxx | 国产精品外围在线观看 | 中文字幕无线观看不卡网站 | 女教师二十三歳 | 亚洲国产中文在线视频 | 午夜性伦鲁啊鲁免费视频 | 免费一级片网站 | 囚禁固定在调教椅上扩张H 秋霞最新高清无码鲁丝片 秋霞在线看片无码免费 | 成人性生交大片 | 爱穿丝袜的麻麻3d漫画免费 | 老师的快感电影完整版 | 我就去色色 | 台湾佬综合娱乐网 | 免费国产在线观看 |