当前位置: 首页 > news >正文

网站建设中图片怎么样南宁百度seo软件

网站建设中图片怎么样,南宁百度seo软件,工艺品东莞网站建设,天津北京网站建设公司前言: 关于RTC时钟的HAL库配置我也是第一次,之前都是用库函数的写法,这里写下这篇博客来记录一下自己的学习过程。 STM32Cubemx配置: 首先点击左侧的Timers的RTC,勾选以下选项 进入时钟树配置 进入时间设置&#xff0…

前言:

 

        关于RTC时钟的HAL库配置我也是第一次,之前都是用库函数的写法,这里写下这篇博客来记录一下自己的学习过程。

STM32Cubemx配置:

        首先点击左侧的Timers的RTC,勾选以下选项

        进入时钟树配置

         进入时间设置,这里我把时间设置为了2023年3月12日20点20分,但是我圈出来的地方一定要注意,125✖6000刚好是750Mhz,一秒发生一次中断

         到此为止,我们的STM32Cubemx配置就算是结束了,直接点击生成代码,接下来就是写代码了。

代码部分:

        这里有几点需要给大家强调一下,获取RTC时间或者日期时,必须先获取时间,再获取日期,顺序不能颠倒(会获取失败),而且时间和日期调用的时候不能单独调用,必须两个同时调用,否则出错,这是我实践得出的结果,即使我也不是太懂为啥。

RTC_TimeTypeDef sTime;				
RTC_DateTypeDef sDate;while (1){HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);sprintf((char *)LCD_dispaly,"%02d:%02d:%02d--%02d:%02d:%02d",sDate.Year,sDate.Month,sDate.Date,sTime.Hours,sTime.Minutes,sTime.Seconds);LCD_DisplayStringLine(Line9,LCD_dispaly);	}

额外功能:

        暂停功能,起始暂停功能我一开始是没有想起来的,后来才想到,把RTC给关了,那不就暂停了吗

__HAL_RCC_RTC_DISABLE();

        恢复计时功能:

__HAL_RCC_RTC_ENABLE();

最终实现效果:

        

设定闹钟:

        RTC 时钟其中一大功能就是闹钟中断,我们在SM32Cubemx中进行如下配置

         将闹钟触发的时间设置为20:20:3,也就是初始时间的3秒后

         然后我们使能中断

代码部分:

        这里设置闹钟的话就需要对代码进行封装了

        我们需要重新写一个GET_Time()函数,还有一个SET_Alarm()函数,同时要需要重新写一下RTC中断的回调函数

        这里一开始我是不打算去写GET_Time()函数的,我决定直接用前面提到的两个函数不就可以了吗,结果报了两个警告,保险起见,我还是把这两个函数封装一下:

         GET_Time():

void GET_Time(void)
{HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
}

        SET_Alarm(),这个函数其实是我复制了MX_RTC_Init()里面的内容,然后更改一下就可以了,让每次中断的时候读取当前秒数,读取到的秒数再加上3就是下一次中断的触发时间。

void SET_Alarm(void)
{RTC_AlarmTypeDef sAlarm = {0};sAlarm.AlarmTime.Hours = 0x20;sAlarm.AlarmTime.Minutes = 0x20;sAlarm.AlarmTime.Seconds = sTime.Seconds+1;sAlarm.AlarmTime.SubSeconds = 0x0;sAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY|RTC_ALARMMASK_HOURS|RTC_ALARMMASK_MINUTES;sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;sAlarm.AlarmDateWeekDay = 0x1;sAlarm.Alarm = RTC_ALARM_A;if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK){Error_Handler();}if(sAlarm.AlarmTime.Seconds==60)sAlarm.AlarmTime.Seconds=0;HAL_RTC_SetAlarm_IT(&hrtc,&sAlarm,RTC_FORMAT_BIN);if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK){Error_Handler();}}

 

 

         之后,我们在RTC的回调函数中书写服务函数

void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{GET_Time();SET_Alarm();sprintf(string,"%02d:%02d:%02d\n",sTime.Hours,sTime.Minutes,sTime.Seconds);HAL_UART_Transmit(&huart1,(unsigned char *)string,strlen(string),50);
}

闹钟的效果实现:

        每一秒向串口助手发送当前时间

 

http://www.zhongyajixie.com/news/37563.html

相关文章:

  • 政府类网站模板下载人民日报新闻
  • 南通网站建设排名公司北京优化互联网公司
  • 做网站在哪接单前端seo优化
  • 做网站上哪买空间找片子有什么好的关键词
  • wordpress+手动备份建站优化推广
  • 做公司网站 需要注意什么c++培训班学费一般多少
  • 做刷单的网站长沙网站seo收费
  • 网站打不开怎么处理seo技术培训广东
  • 网站建设与安全管理广告设计网站
  • 网站报备流程福州百度快速优化排名
  • 自媒体平台怎么赚钱北京seo收费
  • 县工商局 网站建设我国的网络营销公司
  • 新闻网站建设源码seo排名策略
  • 公司网站制作苏州网站设计与开发
  • 宝鸡商城网站开发seo代码优化
  • 商城网站建设开发web软件网站优化+山东
  • redis做网站优化游戏性能的软件
  • 买网站服务器黄金网站app大全
  • 做网站效果怎么样1688精品货源网站入口
  • 3有免费建网站使用最佳搜索引擎优化工具
  • 网站制作视频教程seo网站页面优化包含
  • 如何开网店详细教程seo线下培训班
  • 贵阳网页设计seo排名优化是什么
  • 建设网站采用的网络技术淘宝怎么设置关键词搜索
  • 做化工哪个网站好专业网站优化
  • 能不能自己做网站推广吉林seo排名公司
  • java做的网站有哪些网站品牌推广公司
  • 为了爱我可以做任何事俄剧网站个人微信管理系统
  • ps如何做切片网站按钮山东网络推广优化排名
  • 如何做好一个网站运营网络公关公司联系方式