定时器输入捕获 霍尔传感器接口

2019-08-23 15:20发布

代码如下,通道一设置成输入捕获,在没有信号输入的情况下会不断的进入中断,而且硬件仿真的结果,4个通道的终端标志都置位了。是在是调地头大了,求指点

//霍尔传感器接口配置
//霍尔传感器接在TIM3的CH1,2,3上
//硬件接口为PA6,7B0
void TIM3_Hall_Init(void)
{
RCC->APB1ENR|=1<<1;//TIM3时钟开启
RCC->APB2ENR|=1<<3;//PB口时钟开启
RCC->APB2ENR|=1<<2;//PA口时钟开启

GPIOA->CRL&=0xF00FFFFF;  //PA6,7
GPIOA->CRL|=0x08800000; //上拉/下拉输入模式
GPIOA->ODR|=0XC0; //上拉

GPIOB->CRL&=0XFFFFFFF0;//PB0
GPIOB->CRL|=0X00000008;//上拉、下拉模式
GPIOB->ODR|=0X1;//上拉

TIM3->SC=72-1;
TIM3->ARR=65535;//获得一个最大的计数周期,时间长于霍尔传感器上两次变化的时间间隔
TIM3->CR1&=~(1<<4);//计数器向上计数
TIM3->CR1&=~(3<<8);//不分频

TIM3->CR2|=1<<7;//TIMx_CH1,CH2,CH3引脚经异或后连到TI1输入
TIM3->SMCR|=4<<4;//触发选择:TI1的边沿检测器(TI1F_ED)
TIM3->SMCR|=4<<0;//复位模式 – 选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存器的信号。
TIM3->SMCR|=1<<7;//触发输入(TRGI)上的事件被延迟了
TIM3->CR2|=5<<4;//OC2REF信号被用于作为触发输出(TRGO)

//通道1测量电机速度
TIM3->CCER|=3<<0;//捕获使能,捕获发生在IC1的下降沿;当用作外部触发器时,IC1反相
TIM3->CCMR1|=3<<0;//C1通道被配置为输入,IC1映射在TRC上???
TIM3->CCMR1&=~(3<<2);//捕获输入口上检测到的每一个边沿都触发一次捕获
TIM3->CCMR1|=10<<4;//输入捕获1滤波器设置
//通道2触发换相事件  
TIM3->CCMR1|=7<<12;//通道2设置成PWM2模式
TIM3->CCER|=1<<4;//开启- OC2信号输出到对应的输出引脚
TIM3->CCER&=~(1<<5);//高电平有效
TIM3->CCR2=1023;

// TIM3->DIER|=1<<6;//使能触发中断
TIM3->DIER|=1<<1;//允许捕获比较1中断
// TIM3->DIER|=1<<0;//允许更新中断
TIM3->CR1|=1<<0;//使能计数器
MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//
TIM3->SR=0;
}

//TIM3的中断服务函数
void TIM3_IRQHandler(void)
{
static u16 Speed=0; //暂存速度测量值
  if(TIM3->SR&(1<<1))       //产生比较/捕获事件1中断计数器溢出  
  {
printf("ok");
TIM3->SR&=~(1<<1);//清比较/捕获事件1中断标志
Speed=TIM3->CCR1;//读出捕获值,计算速度值
TIM1->CCR1+=pid_set(Speed); //针对PID输出对电机速度进行调节
TIM1->CCR2+=pid_set(Speed);
TIM1->CCR3+=pid_set(Speed);
  }  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
Jalon
1楼-- · 2019-08-24 08:25
回复【7楼】大就:
---------------------------------
然后你就可以在中断里加入闭环调速
tim4146
2楼-- · 2019-08-24 13:17
楼主,这三个霍尔信号“或”了之后是触发TIM1/8的com事件的吧,你后来有没有研究呢,想找你要个模版的...不好意思做伸手党了呢
小石头6123
3楼-- · 2019-08-24 13:41
各位大大就别问我要程序了 公司要求不能公开 望各位谅解 另外上面的程序应该是有问题的 我最后是用库写的 寄存器写出来的 波形一样但是还是会有问题
DREAM1
4楼-- · 2019-08-24 17:23
 精彩回答 2  元偷偷看……
小石头6123
5楼-- · 2019-08-24 22:18
回复【11楼】DREAM1:
---------------------------------
CCR是调节占空比啊 电机都是这样调节的
行的云
6楼-- · 2019-08-25 00:47
定时器?

一周热门 更多>