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

免费做请帖的网站阿里巴巴运营工资大概多少

免费做请帖的网站,阿里巴巴运营工资大概多少,房地产销售工资一般多少钱一个月,企业网站建设套餐价格STM32F4X RTC 什么是RTCSTM32F4X RTCSTM32F4X RTC框图STM32F4X RTC计数频率STM32F4X RTC日历STM32F4X RTC闹钟 STM32F4X RTC例程 什么是RTC RTC全程叫Real-Time Clock实时时钟#xff0c;是MCU中一个用来计时的模块。RTC的一个主要作用是用来显示实时时间#xff0c;就像日常… STM32F4X RTC 什么是RTCSTM32F4X RTCSTM32F4X RTC框图STM32F4X RTC计数频率STM32F4X RTC日历STM32F4X RTC闹钟 STM32F4X RTC例程 什么是RTC RTC全程叫Real-Time Clock实时时钟是MCU中一个用来计时的模块。RTC的一个主要作用是用来显示实时时间就像日常生活中的时钟一样RTC除了可以显示时间之外还有闹钟功能唤醒功能等。很多的MCU里面都会有RTC模块当然也可以外接RTC芯片使用。 STM32F4X RTC STM32F4X RTC框图 RTC时钟源:RTC的时钟源有3个分别是外部低频晶振(LSE)、内部低频晶振(LSI)和外部高频晶振(HSE)。一般来说我们都会选择32768Hz的LSE作为RTC的时钟源。RTC分频器:时钟源选择好之后就需要对时钟源进行分频。STM32F4X的RTC分频器有两个分别是异步分频器7位的PREDIV_A和15位的同步分频器 PREDIV_A。RTC的分频由这两个分频器共同决定。RTC闹钟:STM32F4X的RTC有两个闹钟用户可以通过设置闹钟的触发条件当闹钟设置的触发条件跟当前RTC的计数时间一致时就会产生一个信号如果使能了闹钟中断就会触发闹钟中断RTC唤醒:当系统进入低功耗模式时可以通过RTC唤醒系统。RTC有一个唤醒预分频器可以设置2/4/6/8分频还有一个16位的唤醒自动重装载寄存器用来设置唤醒时间。RTC影子寄存器:影子寄存器的作用是提供给用户读取日历使用用户不能直接访问影子寄存器由STM32F4X每隔两个TRCCLK周期进行复制。 STM32F4X RTC计数频率 对于RTC来说我们需要得到一个1秒的计数频率这样才符合日常生活的习惯。下面就以RTC的时钟源为32768Hz来计算看如何得到1Hz的频率。 STM32F4X给出了RTC时钟频率的计算公式 STM32F4X的RTC分频需要PREDIV_A和PREDIV_S两个分频器共同决定。其中PREDIV_A为7位PREDIV_S为15位。我们可以设置PREDIV_A为0x7FPREDIV_S为0xFF。 F 32768 / (0x7F 1) * (0xFF 1) 32768 / 32768 1Hz 刚好可以得到1Hz的频率这样就可以让RTC以1秒的频率进行计数。 STM32F4X RTC日历 用户可以设置RTC的日历功能通过RTC_TR和RTC_DR寄存器可以设置日历。 STM32F4X RTC闹钟 STM32F4X的RTC有两个闹钟分别是ALARM A和ALARM B。可以通过RTC_ALRMAR和RTC_ALRMBR进行设置。可以设置闹钟的触发条件和触发时间。 STM32F4X RTC例程 #include rtc.h #define ALARM_HOUR_MIN_SEC 1 // 闹钟匹配 时分秒 #define ALARM_HOUR_MIN 2 // 闹钟匹配 时分 #define ALARM_MIN_SEC 3 // 闹钟匹配 分秒 #define ALARM_HOUR 4 // 闹钟匹配 时 #define ALARM_MIN 5 // 闹钟匹配 分 #define ALARM_SEC 6 // 闹钟匹配 秒 ErrorStatus rtc_set_time(u8 hour,u8 min,u8 sec,u8 ampm) {RTC_TimeTypeDef RTC_TimeStruct;RTC_TimeStruct.RTC_H12 ampm;RTC_TimeStruct.RTC_Hours hour; // 设置小时RTC_TimeStruct.RTC_Minutes min; // 设置分钟RTC_TimeStruct.RTC_Seconds sec;// 设置秒return RTC_SetTime(RTC_Format_BIN,RTC_TimeStruct); } ErrorStatus rtc_set_date(u8 year,u8 mon,u8 day,u8 week) {RTC_DateTypeDef RTC_DateStruct;RTC_DateStruct.RTC_Date day; // 设置日RTC_DateStruct.RTC_Month mon; // 设置月RTC_DateStruct.RTC_WeekDay week;// 设置周RTC_DateStruct.RTC_Year year;//设置年return RTC_SetDate(RTC_Format_BIN,RTC_DateStruct); }void set_alarm_time(u32 alarmx,u8 hour,u8 min,u8 sec,u8 week,u8 alarm_type) {RTC_AlarmTypeDef RTC_AlarmStruct;RTC_TimeTypeDef RTC_AlarmTime; NVIC_InitTypeDef NVIC_InitStruct;EXTI_InitTypeDef EXTI_InitStructure;RTC_AlarmCmd(alarmx,DISABLE); // 关闭闹钟RTC_AlarmTime.RTC_H12 RTC_H12_AM;RTC_AlarmTime.RTC_Hours hour; // 闹钟小时RTC_AlarmTime.RTC_Minutes min; // 闹钟分RTC_AlarmTime.RTC_Seconds sec;// 闹钟秒RTC_AlarmStruct.RTC_AlarmDateWeekDay week; // 闹钟周RTC_AlarmStruct.RTC_AlarmDateWeekDaySel RTC_AlarmDateWeekDaySel_Date;// 闹钟类型选择if(alarm_type ALARM_HOUR_MIN_SEC)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay ;else if(alarm_type ALARM_HOUR_MIN)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Seconds;else if(alarm_type ALARM_MIN_SEC)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours;else if(alarm_type ALARM_HOUR)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Minutes | RTC_AlarmMask_Seconds;else if(alarm_type ALARM_MIN)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours | RTC_AlarmMask_Seconds;else if(alarm_type ALARM_SEC)RTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours | RTC_AlarmMask_Minutes;elseRTC_AlarmStruct.RTC_AlarmMask RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours | RTC_AlarmMask_Minutes;RTC_AlarmStruct.RTC_AlarmTime RTC_AlarmTime;RTC_SetAlarm(RTC_Format_BIN,alarmx,RTC_AlarmStruct);NVIC_InitStruct.NVIC_IRQChannel RTC_Alarm_IRQn; // RTC 闹钟中断号NVIC_InitStruct.NVIC_IRQChannelCmd ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority 2;NVIC_InitStruct.NVIC_IRQChannelSubPriority 2;NVIC_Init(NVIC_InitStruct);EXTI_InitStructure.EXTI_Line EXTI_Line17;//LINE17EXTI_InitStructure.EXTI_Mode EXTI_Mode_Interrupt;//中断事件EXTI_InitStructure.EXTI_Trigger EXTI_Trigger_Rising; //上升沿触发 EXTI_InitStructure.EXTI_LineCmd ENABLE;//使能LINE17EXTI_Init(EXTI_InitStructure);//配置if (alarmx RTC_Alarm_A){RTC_ClearITPendingBit(RTC_IT_ALRA);RTC_ITConfig( RTC_IT_ALRA,ENABLE);}else if(alarmx RTC_Alarm_B){RTC_ClearITPendingBit(RTC_IT_ALRB);RTC_ITConfig( RTC_IT_ALRB,ENABLE);}RTC_AlarmCmd(alarmx,ENABLE); }u8 bsp_rtc_init(void) {u32 lse_rdy_count 0xFFFF;RTC_InitTypeDef RTC_InitStruct;RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟PWR_BackupAccessCmd(ENABLE); //使能后备寄存器访问 RCC_LSEConfig(RCC_LSE_ON); // 使能LSE时钟if(RTC_ReadBackupRegister(RTC_BKP_DR0) ! 0x525443) // 判断是不是第一次配置{while(1){if(RCC_GetFlagStatus(RCC_FLAG_LSERDY) SET) // 等待LSE时钟稳定break;lse_rdy_count--;delay_ms(10);if(lse_rdy_count 0)return 1;}RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); // RTC时钟源选择LSE时钟RCC_RTCCLKCmd(ENABLE); // RTC使能// RTC最终的计数频率 32768 / (0x7F 1) * (0xFF 1) RTC_InitStruct.RTC_AsynchPrediv 0x7F; // 设置异步分频器RTC_InitStruct.RTC_HourFormat RTC_HourFormat_24; // 24小时制RTC_InitStruct.RTC_SynchPrediv 0xFF; // 设置同步分频器RTC_Init(RTC_InitStruct);rtc_set_time(4,7,4,RTC_H12_AM); // 设置时间 4:7:4rtc_set_date(23,9,8,5); // 设置日期 2023-9-8 RTC_WriteBackupRegister(RTC_BKP_DR0,0x525443); // 如果是第一次就往备份寄存器写一个值}return 0;}void RTC_Alarm_IRQHandler(void) {if(RTC_GetITStatus(RTC_IT_ALRA) SET){printf(Alarm A\r\n);RTC_ClearITPendingBit(RTC_IT_ALRA);}if(RTC_GetITStatus(RTC_IT_ALRB) SET){printf(Alarm B\r\n);RTC_ClearITPendingBit(RTC_IT_ALRB);}EXTI_ClearITPendingBit(EXTI_Line17); //清除中断线17的中断标志 } int main(void) {RTC_TimeTypeDef RTC_TimeStruct;RTC_DateTypeDef RTC_DateStruct;uint32_t crc_value 0;NVIC_PriorityGroupConfig(2);system_tick_init();bsp_usart_init(115200);bsp_rtc_init();set_alarm_time(RTC_Alarm_A,10,0,55,2,ALARM_SEC); // 设置闹钟A 按秒闹 set_alarm_time(RTC_Alarm_B,10,1,45,2,ALARM_SEC); // 设置闹钟B 按秒闹while(1){delay_ms(1000);RTC_GetTime(RTC_Format_BIN,RTC_TimeStruct); // 获取时间RTC_GetDate(RTC_Format_BIN, RTC_DateStruct); // 获取日期printf(20%02d-%02d-%02d %02d:%02d:%02d\r\n,RTC_DateStruct.RTC_Year,RTC_DateStruct.RTC_Month,RTC_DateStruct.RTC_Date,RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds); }}
http://www.yutouwan.com/news/355533/

相关文章:

  • 网站推广服务合同模板重庆如何做聚政网站
  • 哪个网站可以做顺风车做门图网站
  • 如何把自己做的网站网络运维服务方案
  • 世界上做的最好的前端网站关于做美食的网站
  • 各大网站提交入口广西住房和城乡建设部网站
  • 建设集团招工信息网站极端页面 装修wordpress 主题
  • 国外网站html5从上到下连续变动古镇网站建设
  • 建设京东类的网站需要什么流程产品创意设计作品
  • 网站改版 降权增城电子商务网站建设
  • 旅游网站开发开题报告网站开发形式有哪些
  • 网站建设设计设计.net网站做优化
  • 关于网站排名优化需要怎么做重庆建设工程人力资源官网
  • 一般网站的宽度是多少拼多多网站怎么建设的
  • 深圳网站制作排行榜用ps做企业网站分辨率是多少
  • 网站开发中制作视频播放器工信部网站报备
  • 建设部网站设计资质查询莱芜网站建设价格低
  • wordpress搭建外贸网站wordpress emlog
  • 河北专业网站建设网站建设域名服务器
  • 手机网站轮播图凡科商城官网旗舰店
  • 网站建设软件的英文做器材的网站
  • 枝江企业网站石岩附近做网站公司
  • 织梦做企业网站教程移动网站建设书
  • 一起做业网站登录国内商务网络公司排名
  • 网站开发体会范文商城网站 html模板
  • 佛山企业网站建设wordpress主题 博客
  • 世界杯视频直播网站推荐网络营销方法案例
  • 怎么做培训班网站wentommy wordpress
  • 如何在网站开发国外大客户网站开发公司起名
  • 月坛网站建设公司app和微网站的区别是什么
  • 海外网站推广方案海南营销网站建设