OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3835|回复: 1

F407定时器的编码器模式测电机转速,求助,急急急!

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-4-22
在线时间
9 小时
发表于 2016-7-22 11:30:25 | 显示全部楼层 |阅读模式
5金钱
本人用407的板子驱动1524电机转动,由于其内部自带的编码器,所有用TIM4的编码器模式捕获脉冲,来计算速度,我估计在定时器、IO口初始化部分都没有错,应该是在采集脉冲时候的处理出错了,
我是用定时器14产生PWM波驱动电机,连接了一个L298N的驱动模块,,这样可以很方便的驱动电机正转,反转,停止,加速减速
用定时器4的编码器模式来捕获编码器产生的脉冲个数Num,然后用定时器3定时100MS,速度就可以算出了,speed = (Num*600)/(4*512)  (r/min)  1524电机转一圈,编码器会产生512个脉冲

我贴出来,我的定时器3的中断处理函数,也就是检测100ms内计数脉冲个数,里面的错误还希望各位大神给我指出
void TIM3_IRQHandler(void)  
{
        if(TIM_GetITStatus(TIM3,TIM_IT_Update) != RESET)
        {       
                curCount = TIM_GetCounter(TIM4);
                if(curCount >= lastCount)
                {
                                speed = curCount - lastCount;
                }
                else  //如果定时器4计数溢出
                {
                                speed = curCount + 65535 - lastCount;
                }
                lastCount = curCount;
                TIM4_CAP_STA = 0x80;
        }
                TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}


//主函数
u8 TIM4_CAP_STA;
u16 Num;
int main(void)
{
        u32 temp = 0;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);
        uart_init(115200);
       
        TIM14_PWM_Init(500-1,84-1);       
        OUT_Init();  
        TIM4_ENcoder_Init();
        TIM3_Int_Init(1000-1,8400-1); //定时100ms
       
        TIM_SetCompare1(TIM14,100);               
        GPIO_SetBits(GPIOF,GPIO_Pin_10);           //IN1 = 0
        GPIO_ResetBits(GPIOF,GPIO_Pin_12);        //IN2=0
   while(1)
        {       
                if(TIM4_CAP_STA&0x80)
                {       
                        temp = Num/(4*512);
                        temp *= 600;
                        printf("速度:%d r/min \r\n",temp);
                        delay_ms(50);
                }

        }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-4-22
在线时间
9 小时
 楼主| 发表于 2016-7-22 11:31:48 | 显示全部楼层
请各位大神看看

转动测速(OK).rar

3.13 MB, 下载次数: 496

回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 20:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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