微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stm32f205输出pwm波形实验,不能输出。

stm32f205输出pwm波形实验,不能输出。

时间:10-02 整理:3721RD 点击:
问大神一个问题  我有个的代码  在stm32103系列中可以使用     波形可以实现 输出   。 到了stm322xx波形不能输出 ,以下是f2xx的代码。(我自己找了测试了这个引脚,通过延迟来实现波形输出,成功了,是不是说明这个引脚没被占用?当然自己也看了。应该是这个引脚没有被占用)。
(1)放在一个platform.c中的代码   

  1. void OUTGPIO_Init(void)
  2. {
  3.         GPIO_InitTypeDef   GPIO_InitStructure;
  4.   OUTGPIO_CLK_INIT(OUTGPIO_CLK, ENABLE);
  5.         GPIO_InitStructure.GPIO_Pin = OUTGPIO_PIN;
  6.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  7.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  8.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  9.   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;    //接上拉电阻                    
  10.         GPIO_Init(OUTGPIO_PORT, &GPIO_InitStructure);
  11. }

复制代码


我觉得可能是GPIO引脚配置的问题。

  1. void TIM_Config(uint16_t Channel2Pulse)//, uint16_t Channel3Pulse
  2. {
  3.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  4.         TIM_OCInitTypeDef        TIM_OCInitStructure;
  5.         
  6.         /* TIM4 clock enable */
  7.         TIME4_CLK_INIT(TIME4_CLK, ENABLE);               
  8.         
  9.         /* Time base configuration */
  10.         TIM_TimeBaseStructure.TIM_Period = 999;  //1KHz
  11.         TIM_TimeBaseStructure.TIM_Prescaler = 0;
  12.         TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  13.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  14.         TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  15.      
  16.         TIM_PrescalerConfig(TIM4,50, TIM_PSCReloadMode_Immediate);               

  17.         /* Channel 2 Configuration in PWM mode */
  18.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
  19.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  20.         TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  21.         TIM_OCInitStructure.TIM_Pulse = Channel2Pulse;
  22.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
  23.         TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
  24.         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  25.         TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;               
  26.         TIM_OC2Init(TIM4, &TIM_OCInitStructure);


  27.         TIM_Cmd(TIM4, ENABLE);
  28.         TIM_CtrlPWMOutputs(TIM4, ENABLE);
  29. }

复制代码


(3)然后我再main.c中直接使用的TIM_Config(400);函数。
希望大神给予指导。

这个配置过程按照官方的例程进行应该就没有什么问题了。主要就是GPIO和TIM(PWM)外设的对应关系你弄对没有啊

我觉得可能是GPIO引脚配置的问题

如果和官方配置方法一样,配置肯定没问题,但是,GPIO口初始化可能是下载口或者其他什么外设口,你还要配置复用功能

看看各个功能位的时钟有没有打开,或者有没开错。

RCC_AHBPeriphClockCmd

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top