STM32F4 라이브러리 함수는 시리즈를 초기화 : PWM 출력

  1  공극 _TIM4_Configuration ( 공극 )
  {
   3    / * TIM4 구성 ------------------------------------- --------------
   4       4 다른 듀티 사이클 7 개 PWM 신호 생성
   5       TIM4CLK = 72 MHz의 프리스케일러 = 0 TIM4 카운터 = 72 MHz의 클록
   6       TIM4 주파수 = TIM4CLK / (+ TIM4_Period 1) = 17.57 KHz의
   7       - TIM4 채널 1 및 Channel1N 듀티 사이클 = TIM4-> CCR1 / (TIM4_Period + 1) = 50 % 
   8       - TIM4 채널 2 및 Channel2N 듀티 사이클 = TIM4-> CCR2 / (TIM4_Period + 1) = 37.5 % 
   (9)       - 채널 3 및 TIM4 Channel3N 듀티 사이클 = TIM4-> CCR3 / (TIM4_Period + 1) = 25 %
10       - TIM4 Channel4 듀티 사이클 = TIM4-> CCR4 / (TIM4_Period + 1) = 12.5 %, 
 11       ----------------------------- ------------------------------------------ * / 
12    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
13    TIM_OCInitTypeDef TIM_OCInitStructure;
14  
(15)    / * 시간축 설정 * /  
16    TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 88만 / 2 ) - 1 ;  // 2000000 
17    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
18    TIM_TimeBaseStructure.TIM_Period =1023 ;
19    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4;
20    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0 ;
21  
22    TIM_TimeBaseInit (TIM4, TIM_TimeBaseStructure);
23  
24    TIM_ARRPreloadConfig (TIM4 활성화);
25  
26    TIM_OCStructInit ( TIM_OCInitStructure)를;
27  
(28)    / * 채널 1, PWM 모드 3 및 4 설정 * / 
29    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
30    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
31    TIM_OCInitStructure.TIM_Pulse = 0 ;
32    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
33    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
34  
35    TIM_OC1Init (TIM4, TIM_OCInitStructure);
36    TIM_OC1PreloadConfig (TIM4, TIM_OCPreload_Enable);
37  
38    TIM_OCInitStructure.TIM_Pulse = 0 ;
39    TIM_OC2Init (TIM4, TIM_OCInitStructure);
40    TIM_OC2PreloadConfig (TIM4, TIM_OCPreload_Enable);
41  
42    TIM_OCInitStructure.TIM_Pulse = 0;
43    TIM_OC3Init (TIM4, TIM_OCInitStructure);
44    TIM_OC3PreloadConfig (TIM4, TIM_OCPreload_Enable);
45  
46    TIM_OCInitStructure.TIM_Pulse = 0 ;
47    TIM_OC4Init (TIM4, TIM_OCInitStructure);
48    TIM_OC4PreloadConfig (TIM4, TIM_OCPreload_Enable);
(49)  
(50)    / * TIM4 카운터 활성화 * / 
51    TIM_Cmd (TIM4을 가능)를;
52  
(53)    / * TIM4 메인 출력 활성화 * / 
54    TIM_CtrlPWMOutputs을 (TIM4가 활성화);  
55  }
 56  
57  공극_TIM8_Configuration ( 공극 )
 58  {
 59    / * TIM8 구성 --------------------------------------- ------------
 60       : 4 다른 듀티 사이클 7 개 PWM 신호 생성
 61       TIM8CLK = 72 MHz의 프리스케일러 = 0 TIM8 카운터 클럭 = 72 MHz의
 62       TIM8 주파수 = TIM8CLK / (TIM8_Period + 1) = 17.57 KHz에서
 63       - TIM8 채널 1 및 Channel1N 듀티 사이클 = TIM8-> CCR1 / (TIM8_Period + 1) = 50 % 
 64       - TIM8 채널 2 및 Channel2N 듀티 사이클 = TIM8-> CCR2 / (TIM8_Period + 1) = 37.5 % 
 65       - TIM8 채널 3 및 Channel3N 듀티 사이클 = TIM8-> CCR3 / (TIM8_Period + 1) = 25 %
 66      - TIM8 Channel4 듀티 사이클 = TIM8-> CCR4 / (TIM8_Period + 1) = 12.5 %, 
 67       ------------------------------ ----------------------------------------- * / 
68    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
69    TIM_OCInitTypeDef TIM_OCInitStructure;
70  
(71)    / * 시간축 설정 * /  
72    TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 880,000 ) - 1 ;  // 2000000 
73    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
74    TIM_TimeBaseStructure.TIM_Period = 1,023 ;
75    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV4;
76    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0 ;
77  
78    TIM_TimeBaseInit (TIM8, TIM_TimeBaseStructure);
79  
80    TIM_ARRPreloadConfig (TIM8 활성화);
81  
82    TIM_OCStructInit ( TIM_OCInitStructure)를;
83  
(84)    / * 채널 1, PWM 모드 3 및 4 설정 * / 
85    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
86    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
87   TIM_OCInitStructure.TIM_Pulse = 0 ;
88    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
89    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
90  
91    TIM_OC1Init (TIM8, TIM_OCInitStructure);
92    TIM_OC1PreloadConfig (TIM8, TIM_OCPreload_Enable);
93  
94    TIM_OCInitStructure.TIM_Pulse = 0 ;
95    TIM_OC2Init (TIM8, TIM_OCInitStructure);
96    TIM_OC2PreloadConfig (TIM8, TIM_OCPreload_Enable);
97  
98    TIM_OCInitStructure.TIM_Pulse = 0 ;
99    TIM_OC3Init (TIM8, TIM_OCInitStructure);
100    TIM_OC3PreloadConfig (TIM8, TIM_OCPreload_Enable);
101  
102    TIM_OCInitStructure.TIM_Pulse = 0 ;
103    TIM_OC4Init (TIM8, TIM_OCInitStructure);
104    TIM_OC4PreloadConfig (TIM8, TIM_OCPreload_Enable);
105  
(106)    / * TIM8 카운터가 활성화 * / 
107    TIM_Cmd (TIM8을 가능);
108  
(109)    / * TIM8 메인 출력 활성화 * / 
110    TIM_CtrlPWMOutputs (TIM8을 가능);  
111  }
 112  
113 TIM_SetCompare1 (TIM4,500 );

 

추천

출처www.cnblogs.com/penuel/p/11264995.html