你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32f334的正交编码

[复制链接]
小蚂蚁快溜跑 提问时间:2015-7-28 20:09 /
阅读主题, 点击返回1楼
收藏 评论24 发布时间:2015-7-28 20:09
24个回答
小蚂蚁快溜跑 回答时间:2015-7-30 10:23:30
54chenjq 发表于 2015-7-29 21:00
我也在研究,哈哈

多多指教~~
小蚂蚁快溜跑 回答时间:2015-7-30 11:04:12
yanhaijian 发表于 2015-7-30 08:34
void TIM3_IRQHandler(void)
{
    /* Clear the interrupt pending flag */     

ENCODER_TIMER是tim3吗?
Encoder是全局变量?
非常的感谢
yanhaijian 回答时间:2015-7-30 11:57:53
小蚂蚁快溜跑 发表于 2015-7-30 11:04
ENCODER_TIMER是tim3吗?
Encoder是全局变量?
非常的感谢

你说的是对的。
小蚂蚁快溜跑 回答时间:2015-7-30 12:35:21

读出来的数没有任何变化,一直是0
yanhaijian 回答时间:2015-7-30 16:42:01
小蚂蚁快溜跑 发表于 2015-7-30 12:35
读出来的数没有任何变化,一直是0

前面还要初始化相关引脚,使能相关外设时钟。我以为你应该知道的。
小蚂蚁快溜跑 回答时间:2015-7-30 16:50:20
yanhaijian 发表于 2015-7-30 16:42
前面还要初始化相关引脚,使能相关外设时钟。我以为你应该知道的。

void Tim3_init(void)
{

       
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_ICInitTypeDef TIM_ICInitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
        //TIM3
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_2);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_2);
        //TIM2 CH2,CH3,CH4
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;       
        GPIO_Init(GPIOA,&GPIO_InitStructure);       

        TIM_DeInit(TIM3);
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);

        TIM_TimeBaseStructure.TIM_Prescaler = 0x0;
        TIM_TimeBaseStructure.TIM_Period = 65535 - 1;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

        TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI1,TIM_ICPolarity_Falling, TIM_ICPolarity_Falling);
       
        TIM_ICStructInit(&TIM_ICInitStructure);
        TIM_ICInitStructure.TIM_ICFilter = 15;
        TIM_ICInit(TIM3, &TIM_ICInitStructure);
        TIM_ClearFlag(TIM3, TIM_FLAG_Update);
        TIM_ITConfig(TIM3, TIM_IT_Update, DISABLE);

        TIM3->SR = 0xfffe;  
        TIM_Cmd(TIM3, ENABLE);
}
这样吗?没有任何反应
yanhaijian 回答时间:2015-7-31 08:18:54

你GPIOA外设时钟使能了吗?你TIMER3中断初始化了吗?
JackieLaura 回答时间:2015-7-31 10:26:55
之前公司一个项目用过正交编码器来精确控制伺服电机,代码是寄存器写的,可惜代码不知道放哪里去了。
主要还是初始化配置的问题,中断处理比较简单,就是计数了。
小蚂蚁快溜跑 回答时间:2015-7-31 17:01:12
yanhaijian 发表于 2015-7-31 08:18
你GPIOA外设时钟使能了吗?你TIMER3中断初始化了吗?

GPIOA的时钟使能了,TIM3的中断初始化是说中断优先级的初始化吗/
你好我好大家好! 回答时间:2015-7-31 17:14:42
查看手册就好了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版