1 | #define PWMPINCHARGEPUMP GPIO_Pin_15 //TIM1_CH3N
|
2 | #define PWMPINDISPLAY100 GPIO_Pin_14 //TIM1_CH2N
|
3 | #define PWMPINDISPLAY120 GPIO_Pin_13 //TIM1_CH1N
|
4 |
|
5 | #define PWMTIM1RCC RCC_APB2Periph_GPIOB
|
6 | #define PWMTIM1PORT GPIOB
|
7 |
|
8 | void PwmTim1Init()
|
9 | {
|
10 | GPIO_InitTypeDef GPIO_InitStructure;
|
11 | TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure;
|
12 | TIM_OCInitTypeDef TIM_OC_InitStructure;
|
13 |
|
14 |
|
15 | RCC_APB2PeriphClockCmd(PWMTIM1RCC | RCC_APB2Periph_AFIO | RCC_APB2Periph_TIM1, ENABLE);
|
16 |
|
17 |
|
18 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
19 |
|
20 | GPIO_InitStructure.GPIO_Pin = PWMPINCHARGEPUMP | PWMPINDISPLAY100 | PWMPINDISPLAY120;
|
21 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
22 | GPIO_Init(PWMTIM1PORT, &GPIO_InitStructure);
|
23 |
|
24 |
|
25 | TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
26 | TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
27 | TIM_TimeBase_InitStructure.TIM_Period = 999;
|
28 | TIM_TimeBase_InitStructure.TIM_Prescaler = 0;
|
29 | TIM_TimeBaseInit(TIM1, &TIM_TimeBase_InitStructure);
|
30 |
|
31 | TIM_OC_InitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
32 | TIM_OC_InitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
|
33 | TIM_OC_InitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Set;
|
34 | TIM_OC_InitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
35 | TIM_OC_InitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
|
36 | //TIM_OC_InitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
37 | //TIM_OC_InitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
|
38 | TIM_OC_InitStructure.TIM_OutputState = TIM_OutputState_Disable;
|
39 | TIM_OC_InitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
|
40 | TIM_OC_InitStructure.TIM_Pulse = 100;
|
41 | TIM_OC1Init(TIM1, &TIM_OC_InitStructure);
|
42 | TIM_OC2Init(TIM1, &TIM_OC_InitStructure);
|
43 | TIM_OC3Init(TIM1, &TIM_OC_InitStructure);
|
44 | //TIM_OC4Init(TIM1, &TIM_OC_InitStructure);
|
45 |
|
46 | TIM_Cmd(TIM1, ENABLE);
|
47 | TIM_CtrlPWMOutputs(TIM1, ENABLE);
|
48 |
|
49 |
|
50 | }
|
51 |
|
52 | #define PWMSPK1 GPIO_Pin_6 //TIM3_CH1
|
53 | #define PWMSPK2 GPIO_Pin_7 //TIM3_CH2
|
54 |
|
55 |
|
56 | #define PWMTIM3RCC RCC_APB2Periph_GPIOA
|
57 | #define PWMTIM3PORT GPIOA
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | void PwmTim3Init()
|
63 | {
|
64 | GPIO_InitTypeDef GPIO_InitStructure;
|
65 | TIM_TimeBaseInitTypeDef TIM_TimeBase_InitStructure;
|
66 | TIM_OCInitTypeDef TIM_OC_InitStructure;
|
67 |
|
68 | RCC_APB2PeriphClockCmd(PWMTIM3RCC | RCC_APB2Periph_AFIO, ENABLE);
|
69 |
|
70 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
|
71 |
|
72 | //RCC_APB2PeriphClockCmd(0xFFFF, ENABLE);
|
73 |
|
74 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
75 | GPIO_InitStructure.GPIO_Pin = PWMSPK1 | PWMSPK2;
|
76 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
77 | GPIO_Init(PWMTIM3PORT, &GPIO_InitStructure);
|
78 |
|
79 |
|
80 | TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
81 | TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
82 | TIM_TimeBase_InitStructure.TIM_Period = 999;
|
83 | TIM_TimeBase_InitStructure.TIM_Prescaler = 0;
|
84 | TIM_TimeBaseInit(TIM1, &TIM_TimeBase_InitStructure);
|
85 |
|
86 | TIM_OC_InitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
87 | TIM_OC_InitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
|
88 | TIM_OC_InitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Set;
|
89 | TIM_OC_InitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
90 | TIM_OC_InitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
|
91 | TIM_OC_InitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
92 | TIM_OC_InitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
|
93 | TIM_OC_InitStructure.TIM_Pulse = 100;
|
94 | TIM_OC1Init(TIM3, &TIM_OC_InitStructure);
|
95 | TIM_OC2Init(TIM3, &TIM_OC_InitStructure);
|
96 |
|
97 | TIM_Cmd(TIM3, ENABLE);
|
98 | TIM_CtrlPWMOutputs(TIM3, ENABLE);
|
99 |
|
100 | }
|