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

用TIM3 接 霍尔传感器遇到问题,STM32-TIM3-HALL PROBLEM!

[复制链接]
heheqian 提问时间:2014-11-27 00:12 /
     用TIM3 接 霍尔传感器;3根霍尔信号异或,霍尔信号跳变,将触发TIM_IT_Trigger 中断;但是实际过程中,不管我怎么转动无刷电机,霍尔信号一直在变化,但是 void TIM3_IRQHandler(void) 中断里,就是没有  TIF 中断标记 即 if(TIM3->SR&0x0040)无法调用; (TIM3中断其他类型的中断是有的,譬如TIM3->SR&0x0010)怎么办啊?,
void TIM3_Configuration(void)
{
   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
   TIM_ICInitTypeDef TIM_ICInitStructure;         
   TIM_OCInitTypeDef  TIM_OCInitStructure;         

   TIM_DeInit(TIM3);

   TIM_TimeBaseStructure.TIM_Prescaler = 71;                        
   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
   TIM_TimeBaseStructure.TIM_Period =65535;
   TIM_TimeBaseStructure.TIM_ClockDivision = 0;
   TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

   TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);     

    TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;            
    TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
    TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_TRC ;
    TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;      
    TIM_ICInitStructure.TIM_ICFilter = 10;                       

    TIM_ICInit(TIM3, &TIM_ICInitStructure);                     

   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                     
   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;            
   TIM_OCInitStructure.TIM_Pulse =1023;
   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;      

   TIM_OC2Init(TIM3,&TIM_OCInitStructure);

   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;                     
   TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;            
   TIM_OCInitStructure.TIM_Pulse =65535;
   TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;      

   TIM_OC4Init(TIM3,&TIM_OCInitStructure);

   TIM_SelectHallSensor(TIM3,ENABLE);                          

   TIM_SelectInputTrigger(TIM3, TIM_TS_TI1F_ED);                  

   TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);            

   TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);        

   TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_OC2Ref );      

   TIM_ITConfig(TIM3, TIM_IT_Trigger|TIM_IT_CC4, ENABLE);  

   //TIM_Cmd(TIM3,ENABLE);
}


收藏 评论1 发布时间:2014-11-27 00:12

举报

1个回答
chinahuangyong 回答时间:2014-11-28 15:34:16
你可以这样,先确定问题一定出现在程序还是在硬件,你先用函数发生器给出一定占空比的脉冲,测试你的程序时不时正确的,如果程序正确,再回个帖,霍尔元件用的时候是要上拉的,不清楚你的电路图,所以。。。。。。。。。。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版