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

【STM8-SO8-DISCO】——7、TIM输出PWM,呼吸灯

[复制链接]
七哥 发布时间:2019-2-27 02:26
本帖最后由 toofree 于 2019-3-2 02:31 编辑
' J' P, _* p% ]4 U# N$ V
  K" c( D0 o+ y3 C
【STM8-SO8-DISCO】——7、TIM输出PWM,呼吸灯
/ L) ]2 p! a5 l3 v1 q$ s
( f$ W2 X9 L$ a' C/ I. N7 I+ F9 C
  本实验,在上一贴基础上,增加定时器TIM2产生PWM信号。通过定时器TIM2产生PWM信号,在主循环中不断改变点空比,从而实现呼吸灯效果。" B- L5 z) P  ]
(上一贴链接:【STM8-SO8-DISCO】——6、TIM4时基测试 https://www.stmcu.org.cn/module/f ... 9541&fromuid=307297 )& ?- p: O& I+ Y
* x. J' u; I3 b) H$ R0 u- V
  原理图显示LED灯LD1为高电平驱动点亮。
& Q6 w" p( W* W; V  ^7 h6 z1 ? 01.jpg
6 |% j1 v% h5 Z
2 J, T/ |* R/ K- V# i  对应STM8S001J3M3为PA3/PB5管脚
5 n+ y) ^! P# \$ o 02.jpg
+ R+ t/ ?8 o: ]4 z6 C- l
0 z3 z& d  T1 z2 B+ d8 U  使用STM8CubeMX,可看到PA3/PB5管脚,同时为定时器2的第三通道TIM2_CH3。; W, x" t  W7 p" F, r! H
11.jpg 7 \& Y+ i4 u7 v

; a6 m: @! C& ?' r  数据手册中TIM2的大致参考如下,详细功能操作请参考芯片用户参考手册。( }% W3 N) ~0 d! k, y' p
21.jpg % D9 [! U' X4 c4 F* P# g
% r0 b9 e1 m8 @. v" C7 w% b5 q
  添加的TIM2部分代码,参考样例工和“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM2\TIM2_PWM_DutyCycleConfiguration”。
1 U! ~& a& v1 y; D' @* C5 Z  添加CCR3_Val变量定义。
/ A. W0 d8 n% ]5 ?- e) r2 c 31.jpg * {8 b/ A$ Q0 v# d5 @

4 S) _" I" l9 `6 @* M( A1 ~  增加TIM2初始化配置函数调用。改变CCR3_Val的值,CCR3_Val从0逐渐增大到999,然后在从999逐渐减小到0,如此往复;更新寄存器TIM2->CCR3H、TIM2->CCR3L;循环延时1mS。
: g9 A& U$ q, `. x 32.jpg
! v5 O. x+ x1 W. [( j8 e& C' u# _- s  I1 V- @$ j
  TIM2初始化配置函数TIM2_Config(),注释掉CH1、CH2通道相关代码,只保留CH3部分。
& j2 d2 d( f3 f  TIM2定时时钟16分频,即1MHz;PWM周期为1000个时钟,即1mS。
; w: ^9 I* i' l1 m0 a/ j# v  设定CH3通道为PWM1 Mode方式,PWM脉冲正极性;开启CH3通道CCR3预加载;开启TIM2的ARR寄存器预加载功能;开启TIM2。! R0 D. G  `$ S" d6 }# Y1 }
33.jpg
' N/ p+ K" S6 H4 A( O+ w4 [' Q3 q# ^" x$ n4 b
  编译,下载程序,并全速运行。
4 I2 r) k6 e1 J, x  v+ l- M, U0 k  实验现象为:程序运行5S后,板上用户LED灯LD1,由暗逐渐变亮,然后再逐渐变暗,实现呼吸灯效果。; \5 f+ D! s# b; O- z6 d
0.gif
; K, v/ h% y) t9 n
1 ^0 _9 a, q3 w+ I8 l8 n3 j; U0 ?  用逻辑分析仪抓取到的数据,可以看出PWM周期为1ms。(标尺取了10个周期,共10ms)。
8 @9 P+ n/ L9 k' o! A4 `3 c 41.jpg ( D! M& T1 a$ o8 S% C0 i
7 h$ L- X$ @% p! G: b0 P
  由亮变暗,再变亮,过程中,有一个周期为全灭的状态,即转折点。之后,每一个周期,高电平时间将逐渐增加。1 M) [: a9 E1 A# B) s3 G
42.jpg " S4 f3 ]; \7 S- d

3 H# y0 @0 ]9 @' [- j7 L/ S  将上图中,编号1号波形展宽,可看到高电平时间为1us;( j, S) i6 V% J8 j) s
43.jpg
! C- f) h  K' m
! D* n+ Q) F' {' V  编号1号波形为2us- W6 i! E) g) e! n$ j
44.jpg " x8 c) t) K9 L

7 n2 c: f; ?7 N1 \0 j! p! U5 i- Z  编号3号波形为3us。9 c- N: W& o2 O$ b/ V
45.jpg
4 V( C% g7 M2 R( U1 m  c1 U+ }$ R4 h0 Q. z5 ?
  程序比较简陋,请凑合看。
7 P# [/ n( C, d' r, u; N+ i% N* p4 a
  本贴测试工程附上:1 O7 m* w. Z2 O) u3 E* R" {/ O. `
   STM8S_StdPeriph_PWM_OUT.rar (259.39 KB, 下载次数: 81)

评分

参与人数 1 ST金币 +1 收起 理由
toyourheart2018 + 1

查看全部评分

赞 收藏 1 评论3 发布时间:2019-2-27 02:26

举报

3个回答
zhongya618 回答时间:2019-2-27 13:23:18
学习观摩
四季 回答时间:2019-2-28 18:58:42
感谢分享
ml8866 回答时间:2019-3-16 22:26:05
感谢分享!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版