OpenEdv-开源电子网

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

请问STM32f103使用的是官方库V3.5,使用TIM3产生PWM时,通道4的B1口只能输出方波是怎么回事呀?其他通道都正常呢

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
发表于 2016-3-12 21:39:49 | 显示全部楼层 |阅读模式
以下是我的程序:首先配置I/O口:

static void TIM3_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

        /* */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

  /* GPIOA and GPIOB clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

  /*GPIOA Configuration: TIM3 channel 1 and 2 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                    //复用推挽模式
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

  /*GPIOB Configuration: TIM3 channel 3 and 4 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0 | GPIO_Pin_1;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}


然后配置定时器:
static void TIM3_Mode_Config(void)
{
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;

        /* 定义占空比变量 */
        u16 pwmaf = 800;        
        u16 pwmab = 0;
        u16 pwmbf = 800;
        u16 pwmbb = 0;



  /* Time base configuration */                 
  TIM_TimeBaseStructure.TIM_Period = 999;       //
  TIM_TimeBaseStructure.TIM_Prescaler = 7;            //输出10KHzPWM
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;        //
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

  /* PWM1 Mode configuration: Channel1 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;            //
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;       
  TIM_OCInitStructure.TIM_Pulse = 999;           //设置通道1的占空比,A6口
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  //
  TIM_OC1Init(TIM3, &TIM_OCInitStructure);         //
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel2 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 0;          //设置通道2占空比为0,A7口
  TIM_OC2Init(TIM3, &TIM_OCInitStructure);          //
  TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel3 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 800;        //设置通道3输出占空比,B0口
  TIM_OC3Init(TIM3, &TIM_OCInitStructure);         //
  TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel4 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 0;        //设置通道4输出占空比,B1口
  TIM_OC4Init(TIM3, &TIM_OCInitStructure);        //
  TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
       
  TIM_ARRPreloadConfig(TIM3, ENABLE);                         //

  /* TIM3 enable counter */
  TIM_Cmd(TIM3, ENABLE);                   //
}



A6、A7、B0输出占空比正常,但B1口输出始终为标准方波
请问是因为我哪里配置错了吗?谢谢
捕获.PNG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
 楼主| 发表于 2016-3-13 11:08:28 | 显示全部楼层
今天再调试的时候发生了这样的现象,我同时开启TIM3和TIM4时,TIM3的通道4输出的占空比为TIM4通道4的给定值,同时TIM4通道4对应的PB9脚没有PWM输出。当关闭TIM4时,TIM3输出PWM恢复正常。也就是说,在两个TIM同时开启的情况下,TIM3的通道4受TIM4的通道4决定。但TIM4通道4对应的PB9脚始终没有PWM输出,请问这是怎么回事呀?感觉好奇怪
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
 楼主| 发表于 2016-3-13 11:09:08 | 显示全部楼层
其他通道都正常
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
 楼主| 发表于 2016-3-13 11:11:03 | 显示全部楼层
关于硬件的话PB9接了一个LED,低电平点亮。系统版在焊接的时候第一次芯片焊错了,又重新焊了一次,不知道是不是和这两种情况有关呢?
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
 楼主| 发表于 2016-3-14 13:45:50 | 显示全部楼层
木有人知道嘛?:'(:'(:'(:'(
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-3-3
在线时间
4 小时
 楼主| 发表于 2016-3-14 18:53:02 | 显示全部楼层
求问各路大神呀?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 19:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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