GD32E103的PA15 PB3重映射位TIMER1,采集正交码盘异常

[复制链接]
742|0
 楼主| zhangyh89 发表于 2022-12-29 19:41 | 显示全部楼层 |阅读模式
本帖最后由 zhangyh89 于 2022-12-29 19:43 编辑

最近项目中用GD32E103做有刷电机的闭环控制,码盘检测使用的是PA15 PB3,偶尔出现电机运行几十分钟后检测不到码盘脉冲信号的情况,后来示波器监控码盘信号发现PA15那个引脚接的那一相信号异常,另一路电机用的PB6 PB7,检测到的波形都是正常的方波。以下为码盘接口的配置代码。
  1. void timer1_timer3_encoder_config(void)
  2. {
  3.     timer_oc_parameter_struct timer_ocinitpara;
  4.     timer_parameter_struct timer_initpara;
  5.        
  6.         rcu_periph_clock_enable(RCU_TIMER1);
  7.         rcu_periph_clock_enable(RCU_TIMER3);
  8.         rcu_periph_clock_enable(RCU_GPIOA);
  9.         rcu_periph_clock_enable(RCU_AF);
  10.        
  11.         timer_deinit(TIMER1);
  12.         timer_deinit(TIMER3);

  13.        
  14.         //TIEMR1 ENCODER -> PA15-DM1A PB3-DM1B
  15.         gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);
  16.         gpio_pin_remap_config(GPIO_TIMER1_PARTIAL_REMAP0, ENABLE);
  17.         gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
  18.         gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_3);
  19.         //TIEMR3 ENCODER -> PB6-DM2A PB7-DM2B
  20.         gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6|GPIO_PIN_7);

  21.        
  22.     timer_initpara.prescaler         = 0;
  23.     timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;
  24.     timer_initpara.counterdirection  = TIMER_COUNTER_UP;
  25.         timer_initpara.period            = 0xFFFF;
  26.     timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;
  27.     timer_initpara.repetitioncounter = 0;
  28.        

  29.     timer_init(TIMER1,&timer_initpara);       
  30.         timer_quadrature_decoder_mode_config(TIMER1, TIMER_ENCODER_MODE2, TIMER_IC_POLARITY_FALLING, TIMER_IC_POLARITY_FALLING);
  31.         timer_enable(TIMER1);       

  32.     timer_init(TIMER3,&timer_initpara);       
  33.         timer_quadrature_decoder_mode_config(TIMER3, TIMER_ENCODER_MODE2, TIMER_IC_POLARITY_FALLING, TIMER_IC_POLARITY_FALLING);
  34.         timer_enable(TIMER3);
  35. }


无标题.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部