标题: STM32四通道高级定时器TIM1的PWM波源程序 [打印本页]

作者: 爱学习的朋友    时间: 2020-3-12 23:19
标题: STM32四通道高级定时器TIM1的PWM波源程序
使用STM32F407的四通道高级定时器TIM1的PWM波,可以同时生成四路,占空比可调的PWM波。大家有兴趣的看一看吧。

单片机源程序如下:

  1. #include "include.h"


  2. void TIM1INIT()
  3.         {
  4.                
  5.         }
  6.        
  7.        
  8. int main(void)
  9. {  
  10. //        u16 led0pwmval=0;   
  11. //        u8 dir=1;
  12.         Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
  13.         delay_init(168);                        //延时初始化   
  14.   TIM1_PWM_Init(20000-1,168-1);                //168M/420=400khz的计数频率,重装载值8000,所以PWM频率为 400k/8000=50hz.     
  15.         LED_Init();
  16. //          delay_ms(1000);         
  17. //                delay_ms(1000);         
  18. //          PWM_0_VAL=2200;
  19. //                PWM_1_VAL=2200;
  20. //                PWM_2_VAL=2200;
  21. //                PWM_3_VAL=2200;
  22. //          delay_ms(1000);         
  23. //                delay_ms(1000);         
  24.           PWM_0_VAL=1000;
  25.                 PWM_1_VAL=1000;
  26.                 PWM_2_VAL=1000;
  27.                 PWM_3_VAL=1000;
  28.                         LED2=!LED2;       
  29.                 delay_ms(1000);         
  30.                 delay_ms(1000);         
  31.                 delay_ms(1000);       
  32.                 LED2=!LED2;       
  33.                 PWM_0_VAL=1150;
  34.                 PWM_1_VAL=1150;
  35.                 PWM_2_VAL=1150;
  36.                 PWM_3_VAL=1150;
  37.                         LED2=!LED2;
  38. //                delay_ms(1000);         
  39. //                delay_ms(1000);         
  40. //                delay_ms(1000);       
  41. //                LED2=!LED2;       
  42. //                PWM_0_VAL=1250;
  43. //                PWM_1_VAL=1250;
  44. //                PWM_2_VAL=1250;
  45. //                PWM_3_VAL=1250;
  46. //                        LED2=!LED2;
  47. //                delay_ms(1000);         
  48. //                delay_ms(1000);         
  49. //                delay_ms(1000);       
  50. //                LED2=!LED2;       
  51. //                PWM_0_VAL=1350;
  52. //                PWM_1_VAL=1350;
  53. //                PWM_2_VAL=1350;
  54. //                PWM_3_VAL=1350;
  55. //                        LED2=!LED2;
  56. //                delay_ms(1000);         
  57. //                delay_ms(1000);         
  58. //                delay_ms(1000);       
  59. //                delay_ms(1000);         
  60.                 delay_ms(1000);         
  61.                 delay_ms(1000);       
  62.         while(1)
  63.         {
  64.                 delay_ms(1000);       
  65. //                PWM_0_VAL=1052;
  66. //                PWM_1_VAL=1053;
  67. //                PWM_2_VAL=1052;
  68. //                PWM_3_VAL=1052;
  69.                         LED2=!LED2;       
  70.                  PWM_0_VAL=1000;
  71.                 PWM_1_VAL=1000;
  72.                 PWM_2_VAL=1000;
  73.                 PWM_3_VAL=1000;
  74.        
  75.         }               
  76.                 //                led0pwmval=10;
  77. //                PWM_0_VAL+=led0pwmval;         
  78. //                PWM_1_VAL+=led0pwmval;
  79. //                PWM_2_VAL+=led0pwmval;
  80. //                PWM_3_VAL+=led0pwmval;
  81.        
  82.        
  83. }
复制代码

所有资料51hei提供下载:
TIM1--四路四通道PWM.7z (96.76 KB, 下载次数: 28)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1