使用STM32F407的四通道高級定時器TIM1的PWM波,可以同時生成四路,占空比可調的PWM波。大家有興趣的看一看吧。
單片機源程序如下:
- #include "include.h"
- void TIM1INIT()
- {
-
- }
-
-
- int main(void)
- {
- // u16 led0pwmval=0;
- // u8 dir=1;
- Stm32_Clock_Init(336,8,2,7);//設置時鐘,168Mhz
- delay_init(168); //延時初始化
- TIM1_PWM_Init(20000-1,168-1); //168M/420=400khz的計數頻率,重裝載值8000,所以PWM頻率為 400k/8000=50hz.
- LED_Init();
- // delay_ms(1000);
- // delay_ms(1000);
- // PWM_0_VAL=2200;
- // PWM_1_VAL=2200;
- // PWM_2_VAL=2200;
- // PWM_3_VAL=2200;
- // delay_ms(1000);
- // delay_ms(1000);
- PWM_0_VAL=1000;
- PWM_1_VAL=1000;
- PWM_2_VAL=1000;
- PWM_3_VAL=1000;
- LED2=!LED2;
- delay_ms(1000);
- delay_ms(1000);
- delay_ms(1000);
- LED2=!LED2;
- PWM_0_VAL=1150;
- PWM_1_VAL=1150;
- PWM_2_VAL=1150;
- PWM_3_VAL=1150;
- LED2=!LED2;
- // delay_ms(1000);
- // delay_ms(1000);
- // delay_ms(1000);
- // LED2=!LED2;
- // PWM_0_VAL=1250;
- // PWM_1_VAL=1250;
- // PWM_2_VAL=1250;
- // PWM_3_VAL=1250;
- // LED2=!LED2;
- // delay_ms(1000);
- // delay_ms(1000);
- // delay_ms(1000);
- // LED2=!LED2;
- // PWM_0_VAL=1350;
- // PWM_1_VAL=1350;
- // PWM_2_VAL=1350;
- // PWM_3_VAL=1350;
- // LED2=!LED2;
- // delay_ms(1000);
- // delay_ms(1000);
- // delay_ms(1000);
- // delay_ms(1000);
- delay_ms(1000);
- delay_ms(1000);
- while(1)
- {
- delay_ms(1000);
- // PWM_0_VAL=1052;
- // PWM_1_VAL=1053;
- // PWM_2_VAL=1052;
- // PWM_3_VAL=1052;
- LED2=!LED2;
- PWM_0_VAL=1000;
- PWM_1_VAL=1000;
- PWM_2_VAL=1000;
- PWM_3_VAL=1000;
-
- }
- // led0pwmval=10;
- // PWM_0_VAL+=led0pwmval;
- // PWM_1_VAL+=led0pwmval;
- // PWM_2_VAL+=led0pwmval;
- // PWM_3_VAL+=led0pwmval;
-
-
- }
復制代碼
所有資料51hei提供下載:
TIM1--四路四通道PWM.7z
(96.76 KB, 下載次數: 28)
2020-3-12 23:50 上傳
點擊文件名下載附件
四通道 下載積分: 黑幣 -5
|