怎么样用stm32产生占空比的矩形方波驱动

2019-07-14 23:49发布

最近在做无线照明通信系统,用led发出的光把信号发送出去,现在想用STM32产生占空比根据输入信号变化的矩形方波驱动led,想请教下这个矩形方波怎样产生?tiM_OCInitStructure.TIM_Pulse 怎样和输入信号建立联系?[size=11.818181991577148px]请大牛们帮帮忙





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
xuhailin110
2019-07-15 11:07
        while(1)
        {
                        delay_ms(100);
                if(dir)pwmval+=200;
                else pwmval-=200;

                if(pwmval>2000)dir=0;
                if(pwmval==200)dir=1;       
                                                                                                 
                TIM->CRR2=pwmval;}
void TIM3_PWM_Init(u16 arr,u16 psc)
{                                                          
        //此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1;       //TIM3时钟使能   

        GPIOA->CRH&=0XFFFFFFF0;//PA8输出
        GPIOA->CRH|=0X00000004;//浮空输入
                 
        GPIOA->CRL&=0X0FFFFFFF;//PA7输出
        GPIOA->CRL|=0XB0000000;//复用功能输出           
        GPIOA->ODR|=1<<7;//PA7上拉       

        TIM3->ARR=arr;//设定计数器自动重装值
        TIM3->PSC=psc;//预分频器不分频
       
        TIM3->CCMR1|=7<<12;  //CH2 PWM2模式                 
        TIM3->CCMR1|=1<<11; //CH2预装载使能          

        TIM3->CCER|=1<<4;   //OC2 输出使能          

        TIM3->CR1=0x8000;   //ARPE使能
        TIM3->CR1|=0x01;    //使能定时器3                                                                                   
}           

一周热门 更多>