上次做了一個通道輸出的PWM波,由於有時候我們需要輸出多個PWM波形,但是隻有少量可用定時器的情況下我們需要使用一個定時器提供多個PWM波,本次實驗目的就是生成三個頻率都爲500Hz,佔空比爲60%、70%、80%的PWM波。
之前的步驟我就不寫了,具體看我上一篇博客,在此附上鍊接:
STM32Cube的PWM控制基礎篇(一)一路PWM設置
一、多路PWM原理
在上次說到,PWM是基於定定時器來使用的,換而言之:
PWM依託的定時器頻率=PWM頻率
(劃重點,要考)
我們可以改變的就是每一路的佔空比,所以上次講的PWM兩個因素已經確定,立馬開工。
二、操作步驟
在上次建立的工程文件,找到STM32cube的文件,在項目根目錄下可以找到【項目名.ioc】文件,打開後直接進針腳設置界面,打開定時器TIM1,設置多個Channel爲PWM Generation CH1~CH3(PS:設置好之後再引腳設置界面確定你所需要的輸出引腳)我這裏分別是PA8,PA9,PA10。
設置完成後其他設置按照之前的設置不做改動,直接進代碼部分
6、代碼部分(設置PWM佔空比)
具體公式我在上一次已經講過,有需要的同學拉到最上面點擊鏈接查看
我們在main.c文件下的用戶代碼2部門添加如下代碼
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 600);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_2, 700);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_3, 800);
/* USER CODE END 2 */
上半部分啓動三路PWM,下班部分設置佔空比,由於我的預分頻係數爲1000,所以百分比是按照佔空比和預分頻係數的比來確定。
三、實驗結果
現在將代碼編譯、下載到自己的開發板上,我這邊檢測方式爲邏輯分析儀測試,將邏輯分析儀的三個測試端子連接到PWM輸出引腳上,結果如下:
爲了方便大家看懂,我把三個波形用邏輯分析儀解碼後得到每個波形的週期以及佔空比,由圖可知週期爲2.0ms,所以頻率爲500Hz,頻道1、2、3的PWM波佔空比分別爲60%、70%、80%,至此,試驗成功!
Good Game!!!!!!
接下來會推出一系列的關於PWM控制電機的分享,有需要的猿們敬請關注!!!!!
以上內容歡迎大家轉載引用,標明出處即可!!!!!