野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18907|回复: 4

TIM3生成4路PWM 有两路无输出

[复制链接]
发表于 2015-5-10 20:41:15 | 显示全部楼层 |阅读模式
  1. /* 初始化上层控制电机两个IO口 B0 B1 */
  2.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  3.   GPIO_InitTypeDef GPIO_InitStructure;
  4.         TIM_OCInitTypeDef  TIM_OCInitStructure;        
  5.         
  6.         
  7.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE); //使能时钟
  8.         
  9.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                    // 复用推挽输出
  10.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  11.         /* 上层电机 B0  B1 */
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
  13.   GPIO_Init(GPIOB, &GPIO_InitStructure);
  14.         /* 下层电机 C6  C7 */
  15.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
  16.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  17.         
  18.         /* 初始化TIM模块 */
  19.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);                                         //使能TIM3时钟
  20.         
  21.         TIM_TimeBaseStructure.TIM_Prescaler=0;//预分频为0
  22.         TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数
  23.         TIM_TimeBaseStructure.TIM_Period=10285;
  24.         TIM_TimeBaseStructure.TIM_ClockDivision = 0;    //时钟分频系数为0
  25.         TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);   //TIM3初始化
  26.         
  27.         
  28.         TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//模式1
  29.         TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//正向通道输出使能
  30.         TIM_OCInitStructure.TIM_Pulse = 2400;
  31.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;     //正向通道输出极性

  32.         TIM_OC1Init(TIM3, &TIM_OCInitStructure);//使能通道1
  33.         TIM_OC2Init(TIM3, &TIM_OCInitStructure);//使能通道2
  34.         TIM_OC3Init(TIM3, &TIM_OCInitStructure);//使能通道3
  35.         TIM_OC4Init(TIM3, &TIM_OCInitStructure);//使能通道4
  36.         TIM_Cmd(TIM3, ENABLE);
复制代码
通道1、2一直是低电平,3、4正常输出 请问是怎么回事TIM_SetCompare1(TIM3,6000);
TIM_SetCompare2(TIM3,0);

回复

使用道具 举报

发表于 2015-5-11 09:00:33 | 显示全部楼层
确保通道1,2对应管脚没有连接到其他模块
单独设置通道1或者通道2输出看有没有波形
回复 支持 反对

使用道具 举报

发表于 2015-5-13 21:27:43 | 显示全部楼层
通道服用功能对应通道是固定的,你查查你选择的GPIO 是不是错了
回复 支持 反对

使用道具 举报

发表于 2015-6-15 20:55:54 | 显示全部楼层
你的C口的定义错了。应该是A2,3的
回复 支持 反对

使用道具 举报

发表于 2015-10-29 15:38:33 | 显示全部楼层
凯123456 发表于 2015-6-15 20:55
你的C口的定义错了。应该是A2,3的

不是A6,7 吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 03:48 , Processed in 0.040490 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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