新手入门
- 积分
- 9
- 金钱
- 9
- 注册时间
- 2023-12-2
- 在线时间
- 2 小时
|
楼主 |
发表于 2024-1-21 12:30:28
|
显示全部楼层
- /**
- * @brief 高级定时器TIMX NPWM设置PWM个数
- * [url=home.php?mod=space&uid=271674]@param[/url] npwm : PWM的个数, 1~2^32次方个
- * @retval 无
- */
- void atim_timx_npwm_chy_set(uint32_t npwm)
- {
- if (npwm == 0) return;
- g_npwm_remain = npwm; /* 保存脉冲个数 */
- HAL_TIM_GenerateEvent(&g_timx_npwm_chy_handle, TIM_EVENTSOURCE_UPDATE); /* 产生一次更新事件,在中断里面处理脉冲输出 */
- __HAL_TIM_ENABLE(&g_timx_npwm_chy_handle); /* 使能定时器TIMX */
- }
- /**
- * @brief 高级定时器TIMX NPWM中断服务函数
- * @param 无
- * @retval 无
- */
- void ATIM_TIMX_NPWM_IRQHandler(void)
- {
- ...
- if (npwm) /* 有脉冲要发送 */
- {
- ATIM_TIMX_NPWM->RCR = npwm - 1; /* 设置重复计数寄存器值为npwm-1, 即npwm个脉冲 */
- HAL_TIM_GenerateEvent(&g_timx_npwm_chy_handle, TIM_EVENTSOURCE_UPDATE); /* 产生一次更新事件, */
- __HAL_TIM_ENABLE(&g_timx_npwm_chy_handle); /* 使能定时器TIMX */
- }
- ...
- }
复制代码 |
|