OpenEdv-开源电子网

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

STM32F429 TIM3 CH2 (PB5) PWM 没有输出

[复制链接]

1

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
353
金钱
353
注册时间
2018-3-29
在线时间
82 小时
发表于 4 天前 | 显示全部楼层 |阅读模式
如题,TIM3 CH2 PB5引脚没有PWM输出,同样TIM3 CH1(PB4), CH3(PB0), CH4(PB1)就正常,代码如下,请教大神,谢谢!
现在解决办法是(PB5不初始化)把PB4和PB5引脚并联一起,通过PB4来输出PWM,但还是想搞清楚是什么原因,不清楚是不是单片机这个引脚坏了(但是两片都是一样的,不过这两片都是从板上拆下来的)
  
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
   GPIO_InitTypeDef GPIO_Initure;
   if(htim==(&TIM2_Handler))
   {
      __HAL_RCC_TIM2_CLK_ENABLE();                        //使能定时器3
      __HAL_RCC_GPIOA_CLK_ENABLE();                        //开启GPIOB时钟

      GPIO_Initure.Pin=GPIO_PIN_15;
      GPIO_Initure.Mode=GPIO_MODE_AF_PP;             //复用推挽输出
      GPIO_Initure.Pull=GPIO_PULLUP;            //上拉
      GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;  //高速
      GPIO_Initure.Alternate= GPIO_AF1_TIM2;             
      HAL_GPIO_Init(GPIOA,&GPIO_Initure);              
   }
   if(htim==(&TIM3_Handler))
   {
      __HAL_RCC_TIM3_CLK_ENABLE();                        //使能定时器3
      __HAL_RCC_GPIOB_CLK_ENABLE();                        //开启GPIOB时钟


      GPIO_Initure.Pin=GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;
      GPIO_Initure.Mode=GPIO_MODE_AF_PP;             //复用推挽输出
      GPIO_Initure.Pull=GPIO_PULLDOWN;            //拉
      GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;  //高速
      GPIO_Initure.Alternate= GPIO_AF2_TIM3;        //PB1复用为TIM3_CH1
      HAL_GPIO_Init(GPIOB,&GPIO_Initure);     
   }
}


//设置TIM x 通道x 的占空比 compare:比较值
void TIM_SetTIMxCompare(u8 timx, u8 ch, u32 compare)
{
   switch(timx)
   {
      case 1 :
         switch(ch)
         {
            case 1 : TIM1->CCR1=compare; break;
            case 2 : TIM1->CCR2=compare; break;
            case 3 : TIM1->CCR3=compare; break;
            case 4 : TIM1->CCR4=compare; break;
         }
      break;
      case 2 :
         switch(ch)
         {
            case 1 : TIM2->CCR1=compare; break;
            case 2 : TIM2->CCR2=compare; break;
            case 3 : TIM2->CCR3=compare; break;
            case 4 : TIM2->CCR4=compare; break;
         }
      break;         
      case 3 :
         switch(ch)
         {
            case 1 : TIM3->CCR1=compare; break;
            case 2 : TIM3->CCR2=compare; break;
            case 3 : TIM3->CCR3=compare; break;
            case 4 : TIM3->CCR4=compare; break;
         }
      break;
   }
}

回复

使用道具 举报

11

主题

2193

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5354
金钱
5354
注册时间
2015-1-10
在线时间
669 小时
发表于 3 天前 | 显示全部楼层
关掉JTAG
回复 支持 反对

使用道具 举报

1

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
353
金钱
353
注册时间
2018-3-29
在线时间
82 小时
 楼主| 发表于 前天 21:59 | 显示全部楼层

谢谢坛友,但是这个引脚(PB5)和JTAG有关系吗? 微信图片_20260203215932_145_372.png
回复 支持 反对

使用道具 举报

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

本版积分规则


关闭

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

正点原子公众号

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

GMT+8, 2026-2-5 17:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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