打印
[其他ST产品]

STM 32 定时器输出 PWM

[复制链接]
213|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
键盘手没手|  楼主 | 2023-10-28 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我们通过TIM3 输出PWM 去驱动 SG90电机
配置如下
1.GPIO结构体
2.配置通用定时器结构体
3.配置定时去输出PWM结构体
4.打开时钟 —> GPIO时钟,TIM定时器时钟,部分重映射时钟
5.配置PWM比较值

一 我们使用定时器3 通道2 重映射之后为PB5


                        
                GPIO_InitTypeDef  GPIO_motorstruct;               
                GPIO_motorstruct.GPIO_Mode  =GPIO_Mode_AF_PP;
                GPIO_motorstruct.GPIO_Pin                = GPIO_Pin_5;
                GPIO_motorstruct.GPIO_Speed  =GPIO_Speed_50MHz;
                GPIO_Init( GPIOB, &GPIO_motorstruct);



使用特权

评论回复
沙发
键盘手没手|  楼主 | 2023-10-28 14:42 | 只看该作者
        
        TIM_TimeBaseInitTypeDef   TIM_motostruct ;
        TIM_motostruct.TIM_ClockDivision  =  TIM_CKD_DIV1;
        TIM_motostruct.TIM_CounterMode  =TIM_CounterMode_Up   
         TIM_motostruct.TIM_Period =  200-1;                       
        TIM_motostruct.TIM_Prescaler  =  7200-1;
        TIM_TimeBaseInit( TIM3, &TIM_motostruct);
       

使用特权

评论回复
板凳
键盘手没手|  楼主 | 2023-10-28 14:43 | 只看该作者

        TIM_OCInitTypeDef   PWM_Motorstruct;
        PWM_Motorstruct.TIM_OCMode  =  TIM_OCMode_PWM1;
        PWM_Motorstruct.TIM_OutputState  = TIM_OutputState_Enable;
        PWM_Motorstruct.TIM_OCPolarity   =TIM_OCPolarity_Low;
       
        TIM_OC2Init( TIM3, &PWM_Motorstruct);
        IM_OC2PreloadConfig( TIM3, TIM_OCPreload_Enable);
        TIM_Cmd( TIM3,  ENABLE);

使用特权

评论回复
地板
键盘手没手|  楼主 | 2023-10-28 14:43 | 只看该作者

        TIM_OCInitTypeDef   PWM_Motorstruct;
        PWM_Motorstruct.TIM_OCMode  =  TIM_OCMode_PWM1;
        PWM_Motorstruct.TIM_OutputState  = TIM_OutputState_Enable;
        PWM_Motorstruct.TIM_OCPolarity   =TIM_OCPolarity_Low;
       
        TIM_OC2Init( TIM3, &PWM_Motorstruct);
        IM_OC2PreloadConfig( TIM3, TIM_OCPreload_Enable);
        TIM_Cmd( TIM3,  ENABLE);

使用特权

评论回复
5
键盘手没手|  楼主 | 2023-10-28 14:43 | 只看该作者
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,  ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,  ENABL);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,  ENABLE);
GPIO_PinRemapConfig( GPIO_PartialRemap_TIM3,ENABLE );

使用特权

评论回复
6
键盘手没手|  楼主 | 2023-10-28 14:43 | 只看该作者
                uint16_t pwmval=155;
                motor_config();
                while(1)
                {
                        for(pwmval=195;pwmval>=175;pwmval-=5)
                        {
                                                TIM_SetCompare2( TIM3,pwmval);
                                                delay(500);
                        }
               
        }
}

使用特权

评论回复
7
键盘手没手|  楼主 | 2023-10-28 14:43 | 只看该作者
最后 SG90 就会按照我们设定的那样去转啦

使用特权

评论回复
8
Wordsworth| | 2024-2-1 08:29 | 只看该作者

最典型的应用就是放大电路中的高低音频控制

使用特权

评论回复
9
Clyde011| | 2024-2-1 09:32 | 只看该作者

器件整合的再紧凑都无法发挥最大的效率

使用特权

评论回复
10
公羊子丹| | 2024-2-1 10:25 | 只看该作者

需要设置电压钳位电路予以保护D3、N3构成的回路

使用特权

评论回复
11
万图| | 2024-2-1 11:28 | 只看该作者

需要串联一个限流电阻在其中

使用特权

评论回复
12
Uriah| | 2024-2-1 12:31 | 只看该作者

当人接触任何东西时,体内的电荷就会放电。

使用特权

评论回复
13
帛灿灿| | 2024-2-1 14:27 | 只看该作者

有不普通的门道

使用特权

评论回复
14
Bblythe| | 2024-2-1 15:30 | 只看该作者

只能处理较小的能量

使用特权

评论回复
15
周半梅| | 2024-2-1 17:26 | 只看该作者

电路正常工作

使用特权

评论回复
16
Pulitzer| | 2024-2-1 18:29 | 只看该作者

灌封前基材外观保持清洁和干燥。将混合好的胶料灌注于需灌封的器件内

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1179

帖子

0

粉丝