STM32 PWM波的输出与定时器中断或者输入捕获中断会产生干扰,导致PWM波无法输出

2019-07-15 08:56发布


#include "public.h"
#include "Systick.h"
#include "led.h"
#include "usart.h"
#include "inputcapture.h"
#include "ADC.h"
#include "jisuancanshu.h"
#include "pwm.h"

//如下是主程序,如果屏蔽了TIM3_Cap_Init, USART1_Init,TIM6_Int_Init,那么,PWM波就能发出,而如果不屏蔽其中任何一个,都会对PWM波产生影响。相对应的子程序在附件里给出
int main()
{

        u8 fx=0;
        u16 i=0;
        SysTick_Init(72);//初始化时钟源               
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断优先级分组
        LED_Init();
//        TIM3_Cap_Init(1000,71);    //定时器周期ARR=1000,时钟频率1MHZ,一个更新中断周期1ms               
//        USART1_Init(9600);
        ADCx_Init();                      //初始化ADC    ADC初始化要在TIM6之前,否则TIM6中断无法产生
        TIM1_PWM_Init(500,71);
        TIM2_PWM_Init(500,72-1);        
        TIM3_PWM_Init(500,72-1);  //根据 Tout=((Period)*(Prescaler+1))/Tclk Tclk=72MHz计算得出周期为500ms,从而确定PWM波形的频率               
       TIM4_PWM_Init(500,71);        

//        TIM6_Int_Init(10000,71);           //用于计算收集过来的参数        


   while(1)
         {
      if(fx==0)
                        {
                                i++;
                                if(i==499)
                                {
                                        fx=1;
                                }
                        }
                        else
                        {
                                i--;
                                if(i==0)
                                {
                                        fx=0;
                                }
                        }
                TIM_SetCompare1(TIM1,i);    //i的值就是CRR,  CRR/周期值 就是实际占空比
                delay_ms(5);
         }         
}
问题子程序.zip 下载积分: 积分 -1 分
8.98 KB, 下载次数: 8, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
大明嘉靖
1楼-- · 2019-07-15 13:51
拥你暖
2楼-- · 2019-07-15 14:34
楼主解决了吗,遇到同样的问题啦
拥你暖
3楼-- · 2019-07-15 19:03
串口初始化,定时器6初始化,编码器初始化都会影响

一周热门 更多>