初级会员 
  
	- 积分
 - 62
 
        - 金钱
 - 62 
 
       - 注册时间
 - 2015-4-2
 
      - 在线时间
 - 11 小时
 
 
 
 | 
 
 本帖最后由 tly823875 于 2022-6-23 21:41 编辑  
 
原子大哥你好! 
我用STM32H7 的高精度定时器HRTIM  TIMERA 产生PWM波形的时候,出现定时器TIMERA无法启动的问题。所有配置运行过后直接点击
 
启动timerA是能成功启动定时器A的,也产生了正常的PWM波形。 
但是通过程序启动timerA就不能启动:HAL_HRTIM_WaveformCounterStart(&hhrtim,HRTIM_TIMERINDEX_TIMER_A);经过跟踪看到的启动代码是: 
HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStart(HRTIM_HandleTypeDef * hhrtim,uint32_t Timers) 
{  
  assert_param(IS_HRTIM_TIMERID(Timers)); 
  __HAL_LOCK(hhrtim);   
  hhrtim->State = HAL_HRTIM_STATE_BUSY;   
  hhrtim->Instance->sMasterRegs.MCR |= (Timers); 
  hhrtim->State = HAL_HRTIM_STATE_READY;  
  __HAL_UNLOCK(hhrtim);   
  return HAL_OK; 
} 
 
 hhrtim->Instance->sMasterRegs.MCR |= (Timers);这句代码就应该是上图timerA的开关,可是传入的Timers参数就是timerA的Index值 为0。强制改成:hhrtim->Instance->sMasterRegs.MCR |1<<17;就能启动timerA。 
 
 
参考手册上是这样的。启动函数也是hal库里面的,我没有修改。这个如何解释? 
 |   
 
 
 
 |