本帖最后由 DMA 于 2016-5-31 00:49 编辑 使用硬体: STM32F411 Nucleo 本来要问有关 UART 相关问题,不过我现在把问题缩小了 我在cube里设置了TIM5 Slave Mode: Reset Mode Trigger Source: ITR0 Channel2: Input Capture direct mode (脚位PA1) 然后我在程序开始前调用了 HAL_TIM_Base_Start_IT(&htim5); HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_2); 运作时可以触发 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim); void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim); 但是无论PA1给予怎样的输入,都没办法复位TIM5计数器,是不是我哪里搞错了? |
TIM5设置1
TIM5设置2
1、尽量不要使用同一个引脚,作为多种功能。
2、实在要用的话,请关心一下不同功能时 对引脚的配置要求。
定时器(输出比较模式/PWM)------推挽复用输出
EXTI输入线------浮空输入或带上拉输入或带下拉输入
已经缩小问题,麻烦各位大神帮我看看
你的TIM5设计成复位模式,触发输入可以是ITRx,或者TI1,TI2,ETRF.
你现在ITR0没有信号过来。 要不可以把触发输入改完TI2FP2.
我已经大概了解TIM框架图。
现在我遇到另一个问题是,每次触发TIM5复位会直接进入中断函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
但是我希望他是真的计数到周期上限才中断这个函数,
请问这样有什么寄存器可以设定吗?
我稍为研究过TIM的所有寄存器似乎没看到这个功能。