在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

應用筆記 | STM32使用DMA產(chǎn)生PWM時波形異常分析

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

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

關(guān)鍵字:回調(diào)函數(shù),HAL庫

目錄預覽

1.前言

2.實驗

3.使用實例

4.小結(jié)

01 前言

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

02

實驗

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

硬件:STM32F401RE-NUCLEO

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

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

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

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

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

在主函數(shù)中開啟Timer。

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

我們可以發(fā)現(xiàn),實驗結(jié)果如客戶反饋的,TIM2輸出的PWM是不正確的,TIM3輸出的PWM是正確的。

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

03 分析

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

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

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

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

當我們將TIM2的DMA外設(shè)端修改為word長度,并將內(nèi)存數(shù)組定義為32bit,再次實驗,可以發(fā)現(xiàn)PWM的波形就是正常的了:

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

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

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

04 小結(jié)

因為F103上沒有32bit計數(shù)器的Timer,所以客戶在F103上并沒有出現(xiàn)類似的問題。在使用DMA訪問經(jīng)過AHB轉(zhuǎn)APB的橋接外設(shè)時,我們要注意DMA對外設(shè)的訪問寬度配置問題。

完整內(nèi)容請點擊“閱讀原文”下載原文檔。


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

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


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

    關(guān)注

    6040

    文章

    44592

    瀏覽量

    636893
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5195

    瀏覽量

    214357
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10915

    瀏覽量

    356754

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    S32K3xxICU應用筆記

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

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

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

    PWM波形的特性與優(yōu)化

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

    波形產(chǎn)生電路的工作原理是什么

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

    芯海CSU18P88應用筆記

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

    CSU18MX86應用筆記

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

    如何通過DMA方式在任意GPIO引腳產(chǎn)生PWM波?

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

    STM32F030 MDA+PWM驅(qū)動ws2812b,起始的50US的低電平是怎么產(chǎn)生

    STM32F030 MDA+PWM 驅(qū)動 ws2812b,起始的50US的低電平怎么產(chǎn)生? 現(xiàn)在dma+pwm,倒是可以產(chǎn)生一個800K h
    發(fā)表于 04-12 07:23

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

    需要更新數(shù)據(jù)時,啟動一次dma傳輸 現(xiàn)象:pwm波的頻率,占空比沒有問題,但是在啟動dma傳輸?shù)牡谝粋€或第二個波形,經(jīng)常會 出現(xiàn)一個三角形的奇怪
    發(fā)表于 04-09 07:45

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

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

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

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

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

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

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

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

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

    我想在PWM上溢和下溢時,從數(shù)組里讀出數(shù)據(jù)更新PWM占空比。STM32CubeMX配置沒有找到DMA的觸發(fā)源,及源地址的設(shè)定
    發(fā)表于 03-06 07:36

    STM32U5系列TIMER+DMA+DAC應用演示

    有人使用STM32U575芯片的DAC功能。他希望使用TIMER事件觸發(fā)DMA,并通過DMA傳輸內(nèi)存數(shù)據(jù)到DAC輸出寄存器,進而產(chǎn)生相應的DAC輸出
    的頭像 發(fā)表于 01-24 09:10 ?1982次閱讀
    <b class='flag-5'>STM32</b>U5系列TIMER+<b class='flag-5'>DMA</b>+DAC應用演示
    主站蜘蛛池模板: 夜夜爽影院| 香蕉婷婷| 都市激情 亚洲| 激情理论| 欧亚色视频| 人与牲动交xxxbbb| 亚洲人成www在线播放| 在线观看国产一级强片| 狠狠操人人| 天天草天天操| 美女牲交视频一级毛片| 2021国产精品久久| 久久97精品久久久久久久看片| 濑亚美莉vs黑人欧美视频| 操美女免费网站| 国产精品9999| 视色4se在线视频播放| 亚洲码欧美码一区二区三区| 日本xxxx69hd| 人人射人人爽| 亚洲 图片 小说 欧美 另类| 色噜噜狠狠狠综合曰曰曰| 欧美一级精品| 欧美一级精品高清在线观看 | 欧美三级午夜伦理片| 超级毛片| 男人j桶进女人免费视频| 亚洲狠狠操| 中文字幕第7页| chinese国产一区二区| 一本大道一卡二卡四卡| 91免费视频网| 国产精品欧美激情第一页| 亚洲综合精品成人啪啪| 亚洲啪啪| 日本免费视频| 边做边爱在线观看视频免费| 四只虎免费永久观看| 日韩免费观看视频| 国产精品手机在线| 免费看黄在线观看|