搜索
查看: 1497|回复: 0

[原创] 【STM8-SO8-DISCO】——6、TIM4时基测试

[复制链接]
  • TA的每日心情
    开心
    2017-12-6 11:47
  • 签到天数: 1 天

    [LV.1]初来乍到

    49

    主题

    3724

    帖子

    429

    蝴蝶豆

    论坛元老

    最后登录
    2021-8-7
    发表于 2019-2-26 02:00:04 | 显示全部楼层 |阅读模式
    本帖最后由 toofree 于 2019-2-26 02:32 编辑

    【STM8-SO8-DISCO】——6、TIM4时基测试

      定时器的时基用法,是定时器的最基本功能。
      本实验基于样例程序“STM8S_StdPeriph_Lib\Project\STM8S_StdPeriph_Examples\TIM4\TIM4_TimeBase”,复制全部文件。
    01.jpg

      将之前创建的工程模板改名为“STM8S_StdPeriph_TIM4_TimeBase”,将上一步复制的5个文件,粘贴到本文件夹下。
    02.jpg

      添加宏定义按键和LED1。(已删除不必要的头文件包含。注意,TIM4_PERIOD的宏定义在之后会用到)
    11.jpg

      主程序中,初始化时钟、IO、定时器。在主循环中,按键B1按键时,LD1常亮;当B1没按下时,LD1翻转闪灯;
    通过时基延时100mS
    12.jpg

      从用户参考手册中得到,上电默认为HSI时钟8分频,即2MHz。
    21.jpg

    22.jpg

      通过“CLK_Config()”函数,将系统时钟设置为16MHz。
      “TIM4_Config()”函数,实现TIM4初始化。16MHz首先通过定时器预分频128,得到计时时钟125KHz;设置定时器循环周期为125,即寄存器TIM4->ARR设置为124;并使能开启TIM4中断。
    13.jpg

      TIM4_TimeBaseInit()函数原型在“stm8s_tim4.c
    ”文件中。
    131.jpg

      初始化按键B1、LD1;延时函数实现。
    14.jpg

      定时器4中断服务函数中,执行TimingDelay_Decrement()使用延时变量TimingDelay自减,并清除中断位。
    15.jpg

      
    编译,下载程序,并全速运行。
      实验现象为,按键B1按键时,LD1常亮;当B1没按下时,LD1翻转闪灯。

      
    用逻辑分析仪抓取LD1时序,频率为5Hz,与预期一致。
    31.jpg

      
    本贴测试工程附上:
    STM8S_StdPeriph_TIM4_TimeBase.rar (260.26 KB, 下载次数: 14)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-20 12:19 , Processed in 0.155182 second(s), 33 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表