初级会员

- 积分
- 60
- 金钱
- 60
- 注册时间
- 2015-4-2
- 在线时间
- 10 小时
|
本帖最后由 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库里面的,我没有修改。这个如何解释?
|
|