Mbed OS 輸出 PWM訊號

2021-08-28 16:58:13 字數 1616 閱讀 6863

pwm 脈寬調變是通過改變脈衝訊號的波形來控制模擬量的方法。pwm可以用來控制燈光亮度,電機速度,電源電壓等等。

pwm 訊號是一種脈衝訊號,具有下面幾個特點:

pwm 頻率

pwm訊號的週期是不變的,而高電平的寬度是變化的。

pwm 占空比

pwm 的占空比=100%*(高電平時間)/(脈衝週期)。pwm 的占空比決定了輸出訊號的電壓平均值,占空比高,輸出的平均值就高。使用乙個rc濾波器電路就可以方便地將pwm 訊號轉換成平均值的電訊號。所以pwm是另一種形式的模擬量輸出方式。

mbed os pwmout 類

mbed 提供了pwmout 類,它內部是使用stm32 中的tim 產生pwm 訊號的。所以並不是所有gpio腳都可以輸出pwm訊號的。具體的選擇方式要查詢modular-2 io引腳定義表。

1 建構函式

pwmout()

2 成員函式

write (float value)

寫入當前的占空比。浮點百分比

read()

讀出當前的占空比。浮點百分比

period (float seconds)

設定週期(秒)

period_ms (int ms)

設定週期(豪秒)

period_us (int us)

設定週期(微秒)

pulsewidth (float seconds)

脈衝寬度(秒)

pulsewidth_ms (int ms)

脈衝寬度(毫秒)

pulsewidth_us (int us)

脈衝寬度(微秒)

例子 主機板led燈漸變

modular-2主機板上的雙色燈控制線pc_6和pc_7  支援pwm 輸出,所以可以實現顏色的漸變。pwm 的頻率為100hz(週期為10ms),改變的速度為50hz,每次該變數為1%。

#include "mbed.h"

pwmout myled(pc_7);

int main()

}

值得注意的是,pwmout 是利用stm32 tim 時鐘來實現的,所以並不是所有的gpio都支援pwm 輸出。modular-2 上的使用者led指示燈選擇了具有tim 時鐘輸出的能力(pc6,pc7)。

例2: rgb 燈條漸變

led rgb 燈條是24v 共陽極rgb 彩色led 燈條,我們使用modular-2 的數字io板來控制該燈條實現漸變。

modular-2 使用雙極性電晶體數字輸出io模組,控制彩色led 燈條。

STM32輸出PWM訊號(庫函式版本)

官方解釋 pwm訊號一般指脈衝寬度調製。脈衝寬度調製是一種模擬控制方式,根據相應載荷的變化來調製電晶體基極或mos管柵極的偏置,來實現電晶體或mos管導通時間的改變,從而實現開關穩壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恆定,是利用微處理器的數碼訊號對模擬電路進行控制的一種非...

PWM波形輸出

在學習嵌入式開發板例程時,剛開始的時候不懂pwm波形是怎樣輸出的,後來漸漸的消化了,mark下 stm32 clock init 9 系統時鐘設定 delay init 72 延時初始化 uart init 72,9600 串列埠初始化 led init 初始化與led連線的硬體介面 tim1 pw...

PWM輸出捕獲模式

pwm輸入捕獲模式是輸入捕獲模式的特例,自己理解如下 每個定時器有四個輸入捕獲通道ic1 ic2 ic3 ic4。且ic1 ic2一組,ic3 ic4一組。並且可是設定管腳和暫存器的對應關係。同乙個tix輸入映 兩個icx訊號。這兩個icx訊號分別在相反的極性邊沿有效。兩個邊沿訊號中的乙個被選為觸發...