簡介
CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開源指令集設計。 片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。 此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。
本章教程使用定時器1通道1(PA8),通過PA8引腳產生PWM控制LED。 燈LED1的亮度。
1、PWM簡介及相關函數介紹
脈沖寬度調制(PWM)是一種模擬控制方式,其是利用微處理器的數字輸出對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。 CH32V103的高級定時器TIM1和通用定時器TIM2/3/4均可產生PWM輸出。
PWM輸出模式是定時器的基本功能之一。 PWM輸出模式最常見的是使用重裝值確定PWM頻率,使用捕獲比較寄存器確定占空比的方法。 將OCxM域(比較捕獲通道x模式設置域)中置110b或者111b使用PWM模式1或者模式2,置OCxPE位(比較捕獲寄存器x預裝載使能位)使能預裝載寄存器,最后置ARPE 位(自動重裝預裝使能位)使能預裝載寄存器的自動重裝載。 在發生一個更新事件時,預裝載寄存器的值才能被送到影子寄存器,所以在核心計數器開始計數之前,需要置UG位(更新事件產生位)來初始化所有寄存器。 在PWM模式下,核心計數器和比較捕獲寄存器一直在進行比較,根據CMS(中央對齊模式選擇)位,定時器能夠輸出邊沿對齊或者中央對齊的PWM信號
邊沿對齊:使用邊沿對齊時,核心計數器增計數或者減計數,在PWM模式1的情景下,在核心計數器的值大于比較捕獲寄存器時,OCxREF上升為高; 當核心計數器的值小于比較捕獲寄存器時,OCxREF下降為低。
中央對齊:使用中央對齊模式時,核心計數器運行在增計數和減計數交替進行的模式下,OCxREF在核心計數器和比較捕獲寄存器的值一致時進行上升和下降的跳變。 但比較標志在三種中央對齊模式下,置位的時機有所不同。 在使用中央對齊模式時,最好在啟動核心計數器之前產生一個軟件更新標志 (置UG位)。
關于PWM輸出具體信息,可參考CH32V103應用手冊。 本章教程通過定時器1通道1產生PWM控制LED,其程序所用庫函數在定時器中斷教程中均已介紹,在此不再贅述。
2、硬件設計
本章教程通過定時器1通道1(PA8)產生PWM控制LED燈,其中,定時器為CH32V103內部資源,無需進行硬件設計,只需進行LED連接即可,LED與GPIO引腳連接方式如下:
LED1與PA8連接。
3、軟件設計
本章教程主要通過定時器產生PWM輸出控制LED燈,其中,led.c文件與led.h文件前面GPIO教程中已講解,在此不再介紹,本章主要介紹pwm.h文件、pwm.c文件以及main.c文件,具體程序如下:
pwm.h文件
pwm.c文件
main.c文件
main.c文件主要包含相關函數的初始化以及while循環函數,在while循環中,將pwmval這個值設置為PWM比較值,也就是通過pwmval來控制PWM的占空比,然后控制 pwmval的值從0變到300,然后又從300變到0,如此循環,因此 LED0 的亮度也會跟著從暗變到亮,然后又從亮變到暗。 TIM_SetCompare1用于修改占空比。
4、下載驗證
將編譯好的程序下載到開發板并復位,可以看到開發板LED1開始不停由暗變亮,再由亮變暗。
-
led
+關注
關注
242文章
23329瀏覽量
662020 -
mcu
+關注
關注
146文章
17267瀏覽量
352006 -
PWM
+關注
關注
114文章
5196瀏覽量
214407 -
定時器
+關注
關注
23文章
3254瀏覽量
115106 -
CH32V103
+關注
關注
1文章
13瀏覽量
1027
發布評論請先 登錄
相關推薦
評論