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

STM32F401用MXCUBE生成time工程问题

[复制链接]
zhjb1 提问时间:2025-3-17 14:51 / 未解决
在MXCUBE中如何进行如下操作:
我想用TIMER4或TIMER11的采用内部时钟分频产生的中断循环触发TIMER2,控制TIMER对外部时钟的采样,问题是:
1. TIMER4或11的ITR下应该如何设置?实际Cube中没有ITR这个设置,应该采用那个?
2. 如果TIMER4或11正确设置了,如何设置程序中启动TIMER4或11开始工作的代码可以触发的ITR信号传输给TIMER2
3. 在MXCUBE中应该选择TIMER2的那个触发选项?
4. 在工程中如何启动TIMER4或11开始工作?
先谢谢了

收藏 评论5 发布时间:2025-3-17 14:51

举报

5个回答
xmshao 回答时间:3 天前
说实在的,你的问题好难看懂哦。下面文字是你的问题:


我想用TIMER4或TIMER11的采用内部时钟分频产生的中断循环触发TIMER2,控制TIMER对外部时钟的采样,问题是:
1. TIMER4或11的ITR下应该如何设置?实际Cube中没有ITR这个设置,应该采用那个?
2. 如果TIMER4或11正确设置了,如何设置程序中启动TIMER4或11开始工作的代码可以触发的ITR信号传输给TIMER2
3. 在MXCUBE中应该选择TIMER2的那个触发选项?
4. 在工程中如何启动TIMER4或11开始工作?




==》你所说的采用内部时钟分频产生的中断循环触发TIMER2,你是指基于更新事件吧,即发生每计数溢出后产生触发事件给到TIM2。
你这里所说的控制TIMER对外部时钟的采样 是什么意思呢?


==》TIMER4或11的ITR下应该如何设置?根据的提法,它俩只是做主TIMER,是无须用到 ITR的。


==》你上面的第2个问题,我翻译下,大概是说如何设置TIM4/TIM11的输出作为TIM2的输入触发吧。这个先看参考手册,里面有各个定时器互相信号
表格,然后在cubeMx做配置选择。
==》你的第3个问题跟第2个问题类似,你先要确定TIM2到底由谁来触发,TIM4还是TIM11,不同的选择,触发项也可能不一样。


==》在手册或STM32相关库例程里都有启动定时器的介绍及库函数,稍微看下。建议你先把这个问题解决,再考虑TIMER主从级联的问题。
zhjb1 回答时间:前天 09:45
您好,非常感谢您的回复和文章,看过后更改了CubeMX的设置,结果与您文章有些不同,开启得到指点:
1.我用的Cube MX是6.12.1版本的
2.重新配置后,用您的代码在main头中加入,但在中断处理中没有反应。在SMT提供的stm32f4xx_it.c中的TIM2中断向量表中可以设置计数累加,如果将您的判断UPDATE加入后就没有反应了(我用TIM2,不是TIM4,在401中只有T1,T2,T3具有外部输入功能,T3作为PWM输出)
3.其实我不需要测试脉宽和周期,我的设想是:第一个上升沿打开计数,第二个上升沿关闭计数,计算并显示,大约重复几次求平均值即完成了。
真对我的这种需求应该如何设计呢?如何利用好STM32F4xx_it.c给的中断向量表直接完成测试?
您非常忙,恳请希望能指导我事先此功能。
再次表示感谢

一会儿画个图示描述我的问题
如果觉得此图也看不明白,我可以画流程图描述,谢谢

触发逻辑示意图

触发逻辑示意图
zhjb1 回答时间:前天 10:26

xmshao 发表于 2025-3-17 17:07
说实在的,你的问题好难看懂哦。下面文字是你的问题:</p>
<p>

您好

我不太会用这个BBS,刚才编了一副示意图发上去了,我自己都看不到此文在哪里?也不知道图片上去了没有,有点晕。

非常感谢您的回复,并且非常有帮助。离目标还差一点点,恳请希望得到您的指点:

我只需要在

两次外部信号触发之间完成计数,重复若干次,最后计算平均值,结束。

外部信号可以是IO口的沿触发,也可以是TIM4或其他的TIMx,在F401RCT6中,T4开始没有外部输入,但可以作为内部触发信号控制TIM2的开始计数和结束计数。

再次表示感谢

butterflyspring 回答时间:前天 14:53
两次外部信号触发之间完成计数,重复若干次,最后计算平均值,结束。”



这句话的意思和捕获原理不是一样的么 ?
结果就是后一个捕获寄存器CCR2的值减去前一个CCR1,从而得到了信号见的计数值。
用捕获实现,那么引脚只是同一定时器不同通道而已。

xmshao 回答时间:昨天 09:37

zhjb1 发表于 2025-3-18 09:45
您好,非常感谢您的回复和文章,看过后更改了CubeMX的设置,结果与您文章有些不同,开启得到指点:
1.我用 ...

这个需求的话,不用搞那么复杂,用不到主从触发。

如果被测信号的周期不长于测试用的定时器的溢出周期时,

在需要做测量时就开启某个通道的捕获功能,可以基于上沿或下沿捕获,连续捕获N个值,

这样就可以得到N-1个结果,做下平均即可。作完测量后关闭捕获。

至于捕获值的获取你可以使用查询,也可以使用中断,或DMA。

这里默认定时器使用单向计数模式。

所属标签

相似问题

官网相关资源

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