找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3023|回复: 0
打印 上一主题 下一主题
收起左侧

关于STM32主从定时器门控模式的问题 ,求助一下各位

[复制链接]
跳转到指定楼层
楼主
ID:388317 发表于 2019-1-7 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用到了TIM4和TIM2,TIM4输出一个PWM波,TIM2采用门控模式,当TIM4为低电平的时候,TIM2开始对外部脉冲进行计数,高电平时即停止计数。目前我在网上看到的,都是主定时器输出高电平时,从定时器进行计数,就像问一下如何反过来。我的代码是这样的:

//TIM4 PWM部分初始化        ST    PB7输出
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM4_PWM_Init(u16 arr,u16 psc)
{  
        RCC->APB1ENR|=1<<2;         //TIM4时钟使能   
        RCC->APB2ENR|=1<<3;            //使能PORTB时钟        
        GPIOB->CRL&=0X0FFFFFFF;        
        GPIOB->CRL|=0XB0000000;        //PB7输出,复用功能输出                    
           
        TIM4->ARR=arr;                        //设定计数器自动重装值
        TIM4->PSC=psc;                        //预分频器不分频
        
        TIM4->CCMR1|=7<<12;          //CH2 PWM2模式                 
        TIM4->CCMR1|=1<<11;         //CH2预装载使能           
        TIM4->CCER|=1<<4;           //OC2 输出使能           
        TIM4->CR1=0x0080;           //ARPE使能
        TIM4->CR2|=0x5<<4;        //MMS=101
        TIM4->CR1|=0x01;            //使能定时器4
}



void TIM2_Int_Init()
{
        RCC->APB1ENR|=1<<0;         //TIM2时钟使能   
        RCC->APB2ENR|=1<<2;            //使能PORTA时钟        
        
  GPIOA->CRL&=0xfffffff0;        
        GPIOA->CRL|=0x00000008;        //PA0浮空输入模式  
        GPIOA->IDR|=1<<1;       //PA1上拉
        
        TIM2->SMCR&=~(0xf<<8);    //ETF=0000:没有滤波
        TIM2->SMCR&=~(3<<12);     //ETPS=00:不使用预分频器
  TIM2->SMCR|=0<<15;        //ETP=0:外部触发极性,ETR不反相,上升沿有效
        TIM2->SMCR|=1<<14;        //ECE=1:外部时钟使能位,使能外部时钟模式2。计数器由ETRF信号上的任意有效边沿驱动
        TIM2->SMCR|=0x5<<0;       //SMS=101:配置定时器为门控模式
        TIM2->SMCR|=0x3<<4;       //TS=011:内部触发3(ITR3),TIM4  

        TIM2->CNT = 0x0;      //计数器清零
        TIM2->CR1|=0x1;            //使能计数器2
        
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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