• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么PB7一直无法输出PWM呢?

a2605 2020-07-05 浏览量:646
void BLDC_TIM_Config(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
TIM_TimebaseInitTypeDef  TIM_TimebaseInitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);
 

//2、初始化PB7引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;  //引脚7 LED1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度
GPIO_Init(GPIOB&GPIO_InitStructure);


TIM_TimebaseInitStructure.TIM_Prescaler     = VREF_TIM_PSC;
TIM_TimebaseInitStructure.TIM_Period        = VREF_TIM_PERIOD;
TIM_TimebaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimebaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimebaseInit(TIM4&TIM_TimebaseInitStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OC2Init(TIM4&TIM_OCInitStructure);

TIM_OC2PreloadConfig(TIM4TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM4ENABLE);
TIM_Cmd(TIM4ENABLE);
}

这些是定义



//VREF   输出比较通道-PB7
#define VREF_TIM_CH2_GPIO_CLK  RCC_APB2Periph_GPIOB
#define VREF_TIM_CH2_PIN GPIO_Pin_7
#define VREF_TIM_CH2_PORT GPIOB



//VREF-BKIN  输出比较通道的刹车通道
//#define VREF_TIM_BKIN_CLK  RCC_APB2Periph_GPIOB
//#define VREF_TIM_BKIN_PIN GPIO_Pin_7
//#define VREF_TIM_BKIN_PORT GPIOB


//定时器配置
#define            VREF_TIM_APBxClock_FUN     RCC_APB1PeriphClockCmd
#define            VREF_TIM_CLK               RCC_APB1Periph_TIM4
#define            VREF_TIM                   TIM4


//PWM 信号的频率 F = TIM_CLK/{(ARR+1)*(PSC+1)}
#define VREF_TIM_PERIOD        719                    
#define VREF_TIM_PSC       9                       
#define VREF_TIM_PULSE         360                   


​这些是对应的定义,





int main(void)
 
{

BLDC_TIM_Config();


while(1)
    {
   GPIO_SetBits(GPIOB GPIO_Pin_7);
}

}


​主程序


没啥问题啊,就是做个测试,一直无法输出PWM

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 看一下电路上的连接,有没有连接到其他的电路上,并冲突了呢

    程序上,你配置的周期什么的都是宏定义吧,看一下宏定义的值是多少

    你用cube直接生成一个工作就可以用了啊,对比一下代码

    • 发布于 2020-07-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:0

相关问题

问题达人换一批

为什么PB7一直无法输出PWM呢?