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