一、任务目的
1. 之前作业中的延时功能都是通过循环、delay/Hal_delay函数等实现,本次作业通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。请设置一个5秒的定时器,每隔5秒从串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁。
2. 了解实时时钟RTC的原理。STM32芯片自带RTC,因此不须像其他MCU需外接RTC模块。请编程实现STM32的日历读取、设置和输出。要求:
1)读取RTC初始时间,验证是否为 1970年1月1日零分零秒;
2)将RTC时间调整为当前时间,并以 2021年x月x日x分x秒的格式从串口输出(或输出到OLED屏),每1s改变一次;
3)如果输出内容中需加入“星期x”,请修改代码。
二、任务一
1.新建stm32f103c8项目
2.启动时钟
打开外部时钟,点击“System Core” ,选择RCC,在右侧弹出的菜单栏中选择“Crystal/Ceramic Resonator”。
选择调试接口,选择SYS。,在右侧弹出的菜单栏中选择“Serial Wire”
3.配置IO
配置PC15,并命名为D1。这里我们只使用一个LED。
4.配置定时器2,定时器3
这里我们使用定时器2来实现定时LED闪烁的功能。如图所示,依次点击位置1,选中定时器2;位置2,配置定时器2的时钟源为内部时钟;位置3,分频系数为71,向上计数模式,计数周期为5000,使能自动重载模式。
使用定时器3进行串口通信控制,配置同上
5.配置中断。
如下图所示,开启定时器2,3的中断。
如下图所示,生成定时器2,定时器3中断优先级配置代码。
6.配置USART1
打开USART1,设置异步通信
7.配置时钟
8.项目设置
9.keil中修改代码
打开两个定时器
HAL_TIM_Base_Start_IT(&htim2);
HAL_TIM_Base_Start_IT(&htim3);
在main.c文件中添加串口输出代码。
第8周 定时器与日历时钟
最新推荐文章于 2025-06-09 22:53:48 发布