最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32Cubev6 PWM波輸出

2021-02-14 01:49 作者:僚機(jī)Wingplane  | 我要投稿

工作環(huán)境:

STM32CubeMXv6

Keil5

? ? PWM波輸出和時鐘有關(guān),所以我們需要先配置時鐘,打開左側(cè)的下拉框System Core,點擊RCC選項;

????我選用的是8M的外部高速時鐘(以實際情況為準(zhǔn)),在下方的配置框中更改High Speed Clock(HSE)為Crystal/Ceramic Resonator;

????配置HSE為8Mhz,APB1為54Mhz;

? ? ? ? 打開左側(cè)的下拉框Timers,點擊TIM3選項;

????打開PWM Channel1(通道一)和?PWM Channel2(通道二)選擇為PWM Generation CH1和PWM Generation CH2,此時我們可得到兩路頻率相同的方波,因為他們用的是同一個定時器,如果需要生成不同頻率的PWM波那么我們就需要開啟兩個不同的定時器。

Input Capture direct mode:輸入直接捕獲模式

Input Capture indirect mode:輸入間接捕獲模式

Input Capture triggered by TRC:TRC觸發(fā)輸入捕獲

Output Compare No Output:輸出比較無輸出

Output Compare CH1:輸出比較CH1

PWM Generation No Output:PWM生成無輸出

PWM Generation CH1:PWM生成CH1

Forced Output CH1:強(qiáng)制輸出CH1

????我首先需要配置一個1ms觸發(fā)一次的定時器中斷(1Khz),我們先通過芯片對應(yīng)的datasheet查到TIM6是在APB1上的,我們通過RCC配置它為54Mhz(最高),根據(jù)公式

Tout =?(PSC+1)* (ARR+1)/Tclk

得到預(yù)分頻值為1(實際填入需要-1,所以在配置中填入0),自動重載值為54000-1=53999,允許自動重載;

PWM模式我們選擇PWM Mode 1;?

???PWM Mode 1:在向上計數(shù)時,一旦TIMx_CNT<TIMx_CCR1時通道1為有效電平,否則為無效電平;在向下計數(shù)時,一旦TIMx_CNT>TIMx_CCR1時通道1為無效電平,否則為有效電平。

????PWM Mode 2:在向上計數(shù)時,一旦TIMx_CNT<TIMx_CCR1時通道1為無效電平,否則為有效電平;在向下計數(shù)時,一旦TIMx_CNT>TIMx_CCR1時通道1為有效電平,否則為無效電平。

????比較寄存器分別設(shè)置為13499(占空比25%)和26999(占空比50%);

????注意,如果需要輸出兩個不同頻率的PWM波則需要兩個定時器;

????通道輸出極性為Low;

設(shè)置完成后

????點擊Project Manager頁面,輸入工程名和工程位置,選擇工具鏈和IDE為MDK-ARM,版本為5.27;

????打開左側(cè)Code Generater菜單勾選Generate peripheral initialization as a pair of'.c/.h'file per peripheral;?

????最后點擊右上角的GENERATE CODE按鈕后生成代碼。

? ? 生成代碼后打開工程文件夾,用Keil5打開工程。

????編譯

????在while循環(huán)前初始化加入啟動PWM輸出

???其中,第一個參數(shù)為TIM定時器名,第二個參數(shù)為通道名

???運(yùn)行,即可生成兩路頻率為1Khz,占空比分別為25%和50%的方波。

? ?如果需要更改PWM波的占空比,可以使用__HAL_TIM_SetCompare()

????其中,第一個參數(shù)為TIM定時器名,第二個參數(shù)為通道名,第三個參數(shù)為CCRx的值

參考資料:

STM32F7開發(fā)指南-HAL庫版本_V1.1

HAL庫教程10:定時器的PWM模式應(yīng)用 ? https://yatao.blog.csdn.net/article/details/89326363


STM32Cubev6 PWM波輸出的評論 (共 條)

分享到微博請遵守國家法律
克东县| 南城县| 南郑县| 郧西县| 雷州市| 驻马店市| 铁力市| 保德县| 晋州市| 西和县| 威信县| 永兴县| 宝清县| 库尔勒市| 泽库县| 汝城县| 陈巴尔虎旗| 砀山县| 科技| 四会市| 凌源市| 石屏县| 保靖县| 昌黎县| 耒阳市| 西盟| 临颍县| 库尔勒市| 锡林浩特市| 大理市| 文山县| 齐齐哈尔市| 临泽县| 五常市| 北碚区| 沙田区| 喀喇沁旗| 漯河市| 塔河县| 莱州市| 昭平县|