您的位置:首页 > 汽车 > 新车 > 国内空间设计公司_建站网址导航hao123_2024年4月新冠疫情结束了吗_成都seo技术经理

国内空间设计公司_建站网址导航hao123_2024年4月新冠疫情结束了吗_成都seo技术经理

2025/9/26 0:39:22 来源:https://blog.csdn.net/qq_62350698/article/details/147352490  浏览:    关键词:国内空间设计公司_建站网址导航hao123_2024年4月新冠疫情结束了吗_成都seo技术经理
国内空间设计公司_建站网址导航hao123_2024年4月新冠疫情结束了吗_成都seo技术经理

1.功能实现

①设置时间和日期

②读取时间和日期

③设置一个闹钟

2.STM32CubeMX配置

打开Timers栏,点击RTC进入配置界面,将时钟源与日历使能,随后使能中断

点开参数配置,设置24小时计数法,Data Format选择二进制数据形式,下面三栏分别为小时、分钟、秒。分别设置为23、30、10

日历的配置同时钟的时分秒一样随意配置即可。

进行闹钟A的配置,时分秒设为23、30、20,将Alarm Mask Date Week day 使能(闹钟响起时不考虑日期),配置完成后生成代码

3.代码配置

首先开打CubeMX给配置的rtc.c文件,将第37、38行定义的两个结构体复制到使用处

RTC_TimeTypeDef sTime = {0};RTC_TimeTypeDef sDate = {0};

 之后使用获取时间与日期函数

HAL_RTC_GetTime(&hrtc,&sTime,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&sDate,RTC_FORMAT_BIN);

注意:即使不需要日期,也要将获取日期函数加上,不然时间不会流动

使用LCD屏查看

char Text[20];void LCD_Show(void)
{sprintf(Text,"%2d:%2d:%2d",sTime.Hours,sTime.Minutes,sTime.Seconds);LCD_DisplayStringLine(Line0,(uint8_t *)Text);sprintf(Text,"%d-%d-%d-%d",sDate.Year,sDate.Month,sDate.Date,sDate.WeekDay);LCD_DisplayStringLine(Line2,(uint8_t *)Text);
}

接下来写闹钟的中断

使用闹钟中断的回调函数

void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{//闹钟中断要执行的代码放这里
}

当时间达到闹钟A设置的参数时,触发中断回调函数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com