STM32 PWM DMA輸出自動調整占空比的方波

2021-10-04 02:00:43 字數 946 閱讀 8822

平台:keil5+stm32f103

功能:用timer3在通道1上輸出乙個頻率為36khz,占空比自動變化的pwm波形。為了效果更明顯,我把其他通道都開啟了。

**如下:這個**是在官方例程的基礎上加了一些修改:

1.增加設定pwm的頻率和占空比的函式,方便呼叫;

2.增加了關閉通道的功能(在該例程中沒有使用);

#define duty_cyclce_buf_len 6//6種占空比

//dma自動讀取buf裡面的內容到ccr1

uint16_t dutycyclebuf[duty_cyclce_buf_len] = ;

/** * disable chx output

* */

void disablechxoutput(uint8_t chx)

break;

case 2:

break;

case 3:

break;

case 4:

break;

default:

break;

}}void timer3_pwm_gpio_configuration(void)

uint16_t setpwmfreq(uint16_t targetfreaq_khz)

//dutycycle:0~100

//tim_period:計數週期

uint16_t setpwmdutycycle(uint16_t tim_period,uint8_t dutycycle)

void dma_configuration(void)

void timer3_pwmmode_config(void)

輸出波形如下:綠色的是pa6,即通道1,是我們想要的效果。紅色的pa7為通道2.

C 檔案輸出自動命名

c 檔案輸出自動命名 一 include include include include int main ofstream outfile int i char tmp 20 name 20 for i 100 i 1000 i 100 itoa i,tmp,10 strcpy name,file...

STM32 PWM輸出設定

計數器暫存器 timx cnt 預分頻器暫存器 timx psc 自動裝載暫存器 timx arr 重複次數暫存器 timx rcr 當timx cnt如果timx ccrx中的比較值大於自動重裝載值 timx arr 則ocxref保持為 1 如果比較值為0,則ocxref保持為 0 自動裝載暫存...

stm32模擬輸出PPM訊號

ppm訊號週期為20ms,分成10分代表10個通道訊號,也就是2ms代表乙個訊號。0.5ms代表乙個通道訊號的開始,所以0.5ms 2ms為通道範圍控制。led p1 a 8 io口初始化,這裡就不介紹了,推挽輸出 u16 count 0 u16 pwm count 1000 總計數 週期20ms,...