OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7150|回复: 11

基于STM32F429的高级定时器PWM输出问题

[复制链接]

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
发表于 2018-5-25 10:35:49 | 显示全部楼层 |阅读模式
1金钱
void TIM2_PWM_Init(u16 arr,u16 psc)
{
        TIM_OC_InitTypeDef TIM2_CHxHandler;                   
        TIM2_Handler.Instance=TIM2;            
        TIM2_Handler.Init.Prescaler=psc;      
        TIM2_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;
        TIM2_Handler.Init.Period=arr;         
        TIM2_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;       
        HAL_TIM_PWM_Init(&TIM2_Handler);


        TIM2_CHxHandler.OCMode=TIM_OCMODE_PWM1;
        TIM2_CHxHandler.Pulse=(arr+1)/2-1;        
        TIM2_CHxHandler.OCPolarity=TIM_OCPOLARITY_LOW;
        HAL_TIM_PWM_ConfigChannel(&TIM2_Handler,&TIM2_CHxHandler,TIM_CHANNEL_2);
        HAL_TIM_PWM_Start(&TIM2_Handler,TIM_CHANNEL_2);       
}

void TIM1_PWM_Init(u16 arr,u16 psc)
{
        TIM_OC_InitTypeDef TIM1_CHxHandler;       
        TIM1_Handler.Instance=TIM1;
        TIM1_Handler.Init.Prescaler=psc;
        TIM1_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;
        TIM1_Handler.Init.Period=arr;
        TIM1_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;       
        HAL_TIM_PWM_Init(&TIM1_Handler);

  TIM1_CHxHandler.OCMode=TIM_OCMODE_PWM1;
        TIM1_CHxHandler.Pulse=(arr+1)/2-1;
        TIM1_CHxHandler.OCPolarity=TIM_OCPOLARITY_LOW;
        HAL_TIM_PWM_ConfigChannel(&TIM1_Handler,&TIM1_CHxHandler,TIM_CHANNEL_1);
        HAL_TIM_PWM_Start(&TIM1_Handler,TIM_CHANNEL_1);
        HAL_TIM_PWM_Stop(&TIM1_Handler,TIM_CHANNEL_1);
        HAL_TIM_PWM_Start(&TIM1_Handler,TIM_CHANNEL_1);       
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{if(htim==&TIM1_Handler)
  {
   __HAL_RCC_TIM1_CLK_ENABLE();
   __HAL_RCC_GPIOA_CLK_ENABLE();
       
   GPIO_Initure.Pin=GPIO_PIN_8;                   //PA3
   GPIO_Initure.Mode=GPIO_MODE_AF_PP;
   GPIO_Initure.Pull=GPIO_PULLUP;          //éÏà-
   GPIO_Initure.Speed=GPIO_SPEED_HIGH;
   GPIO_Initure.Alternate= GPIO_AF1_TIM1;
   HAL_GPIO_Init(GPIOA,&GPIO_Initure);
  }
else if(htim==&TIM2_Handler)
  {
    __HAL_RCC_TIM2_CLK_ENABLE();                       
    __HAL_RCC_GPIOB_CLK_ENABLE();                               
//PB3
    GPIO_Initure.Pin=GPIO_PIN_3;           
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;         
    GPIO_Initure.Pull=GPIO_PULLUP;         
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     
    GPIO_Initure.Alternate= GPIO_AF1_TIM2;       
    HAL_GPIO_Init(GPIOB,&GPIO_Initure);
  }

}

int main(void)
{
    HAL_Init();
    Stm32_Clock_Init(360,25,2,8);
    delay_init(180);
    uart_init();
    LED_Init();

                TIM1_PWM_Init(500-1,90-1);
TIM2_PWM_Init(500-1,90-1);

    while(1)
    {
                delay_ms(100);       
    LED0=!LED0;                       
    }
}
上面是我的定时器TIM1和TIM2的配置,但是TIM1没有脉冲输出,TIM2输出正常,不知道什么原因,希望有做过的人给一下指导意见!




TIM1输出

TIM1输出

TIM2输出

TIM2输出

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-25 10:35:50 | 显示全部楼层
TIM1->BDTR|=1<<15;           //MOE 主输出使能       
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-25 10:37:10 | 显示全部楼层
希望大家帮帮忙,谢谢了
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-25 10:47:58 | 显示全部楼层
补充一下,不要在意注释,注释是错的,TIM1的引脚是PA8
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-27 01:31:09 | 显示全部楼层
TIM1要使能MOE输出才行
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-27 10:11:17 | 显示全部楼层

TIM1要使能MOE输出才行
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-28 08:47:14 | 显示全部楼层
正点原子 发表于 2018-5-27 01:31
TIM1要使能MOE输出才行

谢谢原子哥的解答,但是具体到f429固件库要使用哪个函数才能使能MOE??
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-28 08:48:00 | 显示全部楼层
szczyb1314 发表于 2018-5-27 10:11
TIM1要使能MOE输出才行

谢谢您的解答,但是具体到f429固件库要使用哪个函数才能使能MOE,求告知,谢谢??
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-28 10:05:59 | 显示全部楼层
本帖最后由 szczyb1314 于 2018-5-28 10:07 编辑
简单的旅行 发表于 2018-5-28 08:48
谢谢您的解答,但是具体到f429固件库要使用哪个函数才能使能MOE,求告知,谢谢??
标准库:
TIM_CtrlPWMOutputs(TIM1,ENABLE);        //MOE 主输出使能        
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-31 10:00:34 | 显示全部楼层
szczyb1314 发表于 2018-5-28 10:05
标准库:
TIM_CtrlPWMOutputs(TIM1,ENABLE);        //MOE 主输出使能

这个在f429里面没有!
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-31 10:30:50 | 显示全部楼层
简单的旅行 发表于 2018-5-31 10:00
这个在f429里面没有!

看寄存器版本的,看看是那个寄存器的值决定的,直接用寄存器赋值
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2017-10-15
在线时间
19 小时
 楼主| 发表于 2018-5-31 11:02:27 | 显示全部楼层

这个我试过了,不行,加我一下QQ:1427662165,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 18:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表