你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库 TIM slave mode -> reset mode

[复制链接]
DMA 提问时间:2016-5-30 00:11 /
本帖最后由 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设置1

TIM5设置2

TIM5设置2
收藏 评论4 发布时间:2016-5-30 00:11

举报

4个回答
Dylan疾风闪电 回答时间:2016-5-30 11:15:07
  1. /*Configure GPIO pin : PA0 */
  2.   GPIO_InitStruct.Pin = GPIO_PIN_0;
  3.   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;//GPIO_MODE_IT_FALLING;
  4.   GPIO_InitStruct.Pull = GPIO_PULLUP;
  5.   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
复制代码


1、尽量不要使用同一个引脚,作为多种功能。
2、实在要用的话,请关心一下不同功能时 对引脚的配置要求。
定时器(输出比较模式/PWM)------推挽复用输出
EXTI输入线------浮空输入或带上拉输入或带下拉输入
DMA 回答时间:2016-5-30 13:21:36
本帖最后由 DMA 于 2016-5-30 23:24 编辑

已经缩小问题,麻烦各位大神帮我看看
xmshao 回答时间:2016-5-31 15:01:24
你的触发输入是ITR0,跟PA1没什么关系啊。你PA1设计为输入捕捉。

你的TIM5设计成复位模式,触发输入可以是ITRx,或者TI1,TI2,ETRF.

你现在ITR0没有信号过来。 要不可以把触发输入改完TI2FP2.

DMA 回答时间:2016-5-31 22:57:20
谢谢,大神。
我已经大概了解TIM框架图。

现在我遇到另一个问题是,每次触发TIM5复位会直接进入中断函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

但是我希望他是真的计数到周期上限才中断这个函数,
请问这样有什么寄存器可以设定吗?

我稍为研究过TIM的所有寄存器似乎没看到这个功能。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版