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

【经验分享】STM32G4高精度定时器的HALF输出模式示例

[复制链接]
STMCU小助手 发布时间:2021-12-8 22:00
有人想使用STM32G474芯片做Half模式的PWM输出,发现有点问题,明明配置了定时器A的两路输出, 结果总是只有1路输出。这里简单演示下实现过程。【顺便提醒下,并非STM32G4全系列都内置高精度定时器】
7 l6 J: O4 I. \" [" q- }
4 ~1 k. ]  D2 @& q* f( p& x所谓Half模式就是指硬件基于给定的计数周期值自动输出占空比为50%的方波,用户无须对比较寄存器的值再进行设置,这里硬件默认使用比较寄存器1【cmp1】,硬件自动将用户设置的PERIOD值的一半赋给CMP1寄存器。换言之,用户此时无法对CMP1寄存器进行赋值。+ p8 {5 E: Z# d% m; a$ r

% r# Y/ D3 f6 H" J+ [4 I另外,对于输出配置必须使用CMP1比较事件和定时器的Period周期事件。' C/ r, a7 ?9 c# f5 |; }7 Y

. s; ?' B/ V8 _
808614ccc90f45f5bb8833c0c4d5ded7.png

2 S3 |  s- H% P" C+ I$ Y7 G6 T" w0 \5 t- F1 b  h
关于HALF模式的原理就介绍到这里,下面就使用STM32G474RE的Nucleo开发板演示下实现过程,主要是软件配置,硬件没啥要处理的,有块开发板就行。) x9 }/ t& K% S; ^5 T& ?
* J- Q" k( X( A5 H1 W6 J
9fb0e153afce61810bb409f94a4994e0.png
- i3 }; z0 h) z7 n! m5 m

0 c4 t  E; L) C6 u先使用STM32CubeMx进行配置【其它RCC等的配置此处就不说了】。  `2 w3 `) Y1 W9 a
" w- e  O9 X9 r# s
4460249ac1fc05a1777bd130ef283448.png

- D' j1 K/ n2 t
$ t) G5 g. P7 z! e( `/ d/ T下面截图橙色框中的配置是必须的,有关定时器的时间参数我随便配置的,毕竟这里只是演示一下功能。
3 g3 Q& T7 d/ ~: n2 F1 ]
$ B, {$ R# q7 u5 d& [0 R
0710b542946312b5ce1c483be1ad5e3d.png
. d6 r9 f% s  r, l; ?' X
7 q1 d* l/ [: m9 v, p! u8 A8 C; h
这里的比较单元1必须使能,使能即可,无须参数配置。
" s; P% r6 t2 P( c+ {) ]" b6 ~4 l0 q8 r4 I
456cf41ee55b528de4505cc838f4aff0.png

3 h6 _! a% K/ @( P7 _. y  a, R( q; v. e# T/ S0 ^. b
下面关于TA1/TA2输出的配置,也是必须的关键配置。
) L4 K0 B0 K7 ^4 U7 s$ c
: n. S' O, r( ?: N8 T
3771ff10d27e6e8491f23a004e708233.png
9 Y* o' ~3 |$ ~, p

0 T7 ^7 Q) S- D3 _2 i8 q至于定时器的其它配置,保持默认即可。配置完成后,生成初始化代码,然后加入合适的用户代码。
7 T# b+ E! Q  [) y3 p. R9 L0 m% z5 y6 k. ^
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);
* H- N. Z) l1 t) M8 _( _. b/ p# K7 ?2 j  e- O
8 I: q. r$ @- B/ \

% Y( t1 `# @" e* W! c% G) {6 e. ^  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);, S( O! ^1 c9 B* _3 r
6 l  u/ A# X# Z
  HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);3 Q& L4 K) O. o7 L0 v
0 @- E  ^, M( p2 T( l
8 A- v% l+ n% U3 ]- E
编译运行看结果:" ?! {/ o* n' V
& o5 I& _- M, V9 w0 I* f* H
647065895cf34eb2b894b34b9b135da9.png

2 W4 D( [* a/ ^6 D; k
9 e0 V# J3 ]0 n& f( D, u) {, N因为我把TA1/TA2极性选择是相反的,所有此时输出的是两路互补波形,如果二者极性选择一致,输出的就是两路占空比为50%的相同波形。* v, m3 [) K! B8 o9 R/ I, G; `

( l9 F9 ~+ C5 ^1 k5 f( _' L6 J+ X' M' ^% y1 g: N- w$ y1 y
8 m3 H" X6 \/ a9 @' k
收藏 评论0 发布时间:2021-12-8 22:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版