• 实验目的
  • 掌握STM32F103定时器的工作原理与应用、实现精确的电子钟功能、提升编程和调试

    能力、培养创新与实践能力。

  • 实验内容
  • 通过深入理解STM32F103VET6定时器的工作原理,实现一个具有小时、分钟、秒显

    示功能的电子钟,从而提升其嵌入式系统设计和开发能力。

  • 实验设备
  • 硬件设备:PC机、野火STM32系统开发板;

    软件工具:STM32CubeMX、Keil uVision5。

  • 实验原理
  • STM32F103定时器设计电子钟小时、分钟、秒实验的原理主要是对STM32F103单片机的基本定时器TIM6进行相关配置,实现每秒产生依次定时器中断,进而实现秒、分、时的电子钟效果。

  • 实验步骤
  • 1、双击电脑桌面STM32CubeMX软件运行后如图5-1所示,之后双击红框标号1显示如图5-2所示。

    图5-1

    2、在标号1中输入单片机型号STM32F103VET6后双击标号2,之后显示如图5-3所示。

    图5-2

    3、按照标号1、2、3进行时钟设计。

    图5-3

    4、之后,按照标号1、2、3、4、5进行定时tim6定时1s参数设置,如图5-4所示。同时使能NVIC中断向量表如图5-5所示。

    图5-4

    图5-5

    5、之后,按照如图5-6中表号1、2、3对时钟进行配置

    图5-6

    6、之后,按照如图5-7中表号1、2、3、4对工程名和软件版本进行设置,最后双击标号5生成代码。

    图5-7

    7、之后,找到设定的工程目录打开工程代码如图5-8中编号1、2、3所示,之后编写启动定时器TIM6代码如图5-8编号4。

    图5-8

    8、之后,定义电子钟所需变量如图5-9编号2所示。

    图5-9

    9、之后,按照如图5-10找到标号5所示代码复制下来。

    图5-10

    10、之后,按照如图5-11把复制的内容粘贴到main.c的图5-11位置,并且编写函数内电子钟程序。

    图5-11

  • 实验结果及分析
  • 编写好程序,进行编译没有问题后,连接开发板打开debug界面进行调试,通过添加hour、minute、secon的watch1窗口监测值,点击标号2,当运行一段时间后hour:0、minute:14、secon:0时停止执行,同时打开手机秒表功能进行验证所做电子钟实验计时是否准确,现象如图6-1所示。通过对比发现存在误差,而且较大,原因分析:存在人工点击的较大迟缓、以及硬件本身存在的微小延迟。

    图6-1

  • 实验总结
  • 实验完成后,我对STM32F103定时器设计电子钟小时、分钟、秒的实验进行了深入总结。本次实验的核心原理在于对STM32F103单片机的基本定时器TIM6进行精确配置,通过合理配置定时器的预分频器和自动重载寄存器,实现了每秒产生一次定时器中断。这一中断机制的触发,使得我们能够实时更新电子钟的秒、分、时显示,从而实现了电子钟的基本功能。

    在实验过程中,我首先深入研究了STM32F103定时器的工作原理和配置方法,掌握了如何通过编程实现对定时器的精确控制。随后,我根据实验要求,对TIM6定时器进行了详细的配置,包括时钟源的选择、预分频器的设置以及中断使能等。

    在定时器配置完成后,我编写了相应的中断服务函数,用于处理定时器中断事件。在中断服务函数中,我实现了对电子钟秒、分、时值的更新,并通过适当的显示接口将这些信息实时展示在电子钟上。

    通过本次实验,我不仅掌握了STM32F103定时器的基本使用方法,还学会了如何利用定时器中断实现电子钟的实时显示功能。同时,我也深刻体会到了理论与实践相结合的重要性,只有通过实际操作,才能真正理解和掌握所学知识。

    作者:一苏紫墨

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32电子钟实验教程

    发表回复