nucleo_study3.pdf

  • 浏览量:1228
  • 下载量:36
  • 资料大小:191.45 KB
  • 日期:2017-08-30
  • 上传者:lygo
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    本帖最后由 lygo 于 2017-9-5 23:44 编辑

    前面那一篇帖子学习了按键点灯,那么接下来这篇帖子咱们就玩高大上一点行不行(其实是nucleo外设没多少,还在点灯),由于第一篇帖子是延时来点灯,那么本帖子就来一下定时器计数来实现点灯吧。首先先介绍下定时器吧,我相信学过stm32的人肯定都会知道定时器吧,而定时器本质就是计数器,计数器对内部计数也就构成了定时器。其原理如下:假设为向上计数模式:比如设定一个计数上限,但是不能超过65535(最大值),然后让计数器开始计数,当计数值到达上限了,它再从头开始计数。只不过,当这一轮计数完毕时,会产生一个更新中断,我们可以让 mcu 为我们做点事,比如打开或关闭一个 led 灯。这里还需要介绍个概念预分频器:起到一个时钟分频作用,比如设定计数器的工作频率(比如时钟频率为48m,48分频后就变为了1m,即就是1us)。当计数值到达上或下限时,你让定时器产生一个事件,还是让定时器产生一个中断,你得告诉定时器。然后设计一个事件处理函数或中断处理函数,在里面完成要 mcu 完成的操作。配置定时器的步骤如下:
    1. 选一个定时器来操作,有高级也有通用定时器,这里我们选 tim2,这是个通用定时器。
    2. 设置定时器的计数频率,也就是定时器的预分频器
    3. 指定计数上限
    4. 当计数器到达上或下限时,定时器产生事件还是中断
    5. 打开定时器 实现的效果:led灯一会灭,一会亮,话不多说,直接上吧。
    第一步:选择定时器,如下:
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换