Hallo STM32-Benutzer,
ich versuche gerade einen Motortreier über ein PWM-Signal u steuern. Das
ganze sollte auf meinem STM32F103 Board noch Platz finden und so hab ich
mir mal ein wenig die Codes dazu anesen und daraus dann meine
Initialisierung gebastlt.
Hier meine Initialisierung:
1 | /* GPIOB Configuration: TIM4 CH3 + 4 */
|
2 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ;
|
3 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
4 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
5 | GPIO_Init(GPIOB, &GPIO_InitStructure);
|
6 |
|
7 | /* Time base configuration */
|
8 | TIM_TimeBaseStructure.TIM_Period = 100;
|
9 | TIM_TimeBaseStructure.TIM_Prescaler = 200;
|
10 | TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
11 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
12 | TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
|
13 |
|
14 | TIM_ARRPreloadConfig (TIM4, ENABLE);
|
15 |
|
16 | // Update registers
|
17 | TIM4->EGR |= (1 << TIM_EGR_UG);
|
18 |
|
19 | /* PWM1 Mode configuration: Channel3 */
|
20 | TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
|
21 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
22 | TIM_OCInitStructure.TIM_Pulse = 10;
|
23 | TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
|
24 | TIM_OC3Init(TIM4, &TIM_OCInitStructure);
|
25 |
|
26 | TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
|
27 |
|
28 | /* PWM1 Mode configuration: Channel4 */
|
29 | TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
30 | TIM_OCInitStructure.TIM_Pulse = 20;
|
31 | TIM_OC4Init(TIM4, &TIM_OCInitStructure);
|
32 |
|
33 | TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
|
34 |
|
35 | /* TIM4 enable counter */
|
36 | TIM_Cmd(TIM4, ENABLE);
|
37 | TIM_CtrlPWMOutputs(TIM4, ENABLE);
|
Hat das von euch schonmal jemand gemacht? Am Ausgang messe ich nichts.
Wäre über eine kleine Hilfe echt dankbar!
P.S.: Muss ich meine Pins über einen ReMap neu programmieren? Bei
früheren Controllern der STM32 Serie war das ja so oder? Hab in der Lib
aber keinerlei Funktionen dazu gefunden, da das ja jetzt über GPIO_Mode
kalppt.