使用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)
|