国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32 RTC實(shí)時(shí)時(shí)鐘(二)

冬至子 ? 來(lái)源:紛紜雜談 ? 作者:CY_CHEN ? 2023-07-22 15:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上次實(shí)驗(yàn)完成了對(duì)實(shí)時(shí)時(shí)鐘的基本功能——計(jì)時(shí)的實(shí)驗(yàn),這次在計(jì)時(shí)的基礎(chǔ)上對(duì)RTC的可編程鬧鐘的功能進(jìn)行測(cè)試。

RTC 單元提供兩個(gè)可編程鬧鐘,即鬧鐘 A 和鬧鐘 B。

可通過(guò)將 RTC_CR 寄存器中的 ALRAE 和 ALRBE 位置 1 來(lái)使能可編程鬧鐘功能。如果日歷亞秒、秒、分鐘、小時(shí)、日期或日分別與鬧鐘寄存器RTC_ALRMASSR/RTC_ALRMAR 和RTC_ALRMBSSR/RTC_ALRMBR 中編程的值相匹配,則 ALRAF 和 ALRBF 標(biāo)志會(huì)被置為1??赏ㄟ^(guò) RTC_ALRMAR 和 RTC_ALRMBR 寄存器的 MSKx 位以及 RTC_ALRMASSR 和RTC_ALRMBSSR 寄存器的 MASKSSx 位單獨(dú)選擇各日歷字段??赏ㄟ^(guò) RTC_CR 寄存器中的 ALRAIE 和 ALRBIE 位使能鬧鐘中斷。

鬧鐘 A 和鬧鐘 B(如果已通過(guò) RTC_CR 寄存器中的位 OSEL[0:1] 使能)可連接到 RTC_ALARM輸出??赏ㄟ^(guò) RTC_CR 寄存器的 POL 位配置 RTC_ALARM 極性。

要對(duì)可編程的鬧鐘(鬧鐘 A 或鬧鐘 B)進(jìn)行編程或更新,必須執(zhí)行類似的步驟:

  1. 將 RTC_CR 寄存器中的 ALRAE 或 ALRBE 位清零以禁止鬧鐘 A 或鬧鐘 B。
  2. 輪詢 RTC_ISR 寄存器中的 ALRAWF 或 ALRBWF 位,直到其中一個(gè)置 1,以確保鬧鐘寄存器可以訪問(wèn)。大約需要 2 個(gè) RTCCLK 時(shí)鐘周期(由于時(shí)鐘同步)。
  3. 編程鬧鐘 A 或鬧鐘 B 寄存器(RTC_ALRMASSR/RTC_ALRMAR 或 RTC_ALRMBSSR/RTC_ALRMBR)。
  4. 將 RTC_CR 寄存器中的 ALRAE 或 ALRBE 位置 1 以再次使能鬧鐘 A 或鬧鐘 B。

注意:約 2 個(gè) RTCCLK 時(shí)鐘周期(由于時(shí)鐘同步)后,將執(zhí)行對(duì) RTC_CR 寄存器的更改。

寫程序前先簡(jiǎn)單了解下鬧鐘相關(guān)的寄存器:

RTC鬧鐘A寄存器 (RTC_ALRMAR)

圖片

位 31 MSK4:鬧鐘 A 日期掩碼 (Alarm A date mask)

0:如果日期/日匹配,則鬧鐘 A 置 1

1:在鬧鐘 A 比較中,日期/日無(wú)關(guān)

位 30 WDSEL:星期幾選擇 (Week day selection)

0:DU[3:0] 代表日期的個(gè)位

1:DU[3:0] 代表星期幾。DT[1:0] 為無(wú)關(guān)位。

位 29:28 DT[1:0]:日期的十位(BCD 格式)

位 27:24 DU[3:0]:日期的個(gè)位或日(BCD 格式)

位 23 MSK3:鬧鐘 A 小時(shí)掩碼 (Alarm A hours mask)

0:如果小時(shí)匹配,則鬧鐘 A 置 1?

1:在鬧鐘 A 比較中,小時(shí)無(wú)關(guān)

位 22 PM :AM/PM 符號(hào) (AM/PM notation)

0:AM 或 24 小時(shí)制

1:PM

位 21:20 HT[1:0]:小時(shí)的十位(BCD 格式)

位 19:16 HU[3:0]:小時(shí)的個(gè)位(BCD 格式)

位 15 MSK2:鬧鐘 A 分鐘掩碼 (Alarm A minutes mask)

0:如果分鐘匹配,則鬧鐘 A 置 1

1:在鬧鐘 A 比較中,分鐘無(wú)關(guān)

位 14:12 MNT[2:0]:分鐘的十位(BCD 格式)

位 11:8 MNU[3:0]:分鐘的個(gè)位(BCD 格式)

位 7 MSK1:鬧鐘 A 秒掩碼 (Alarm A seconds mask)

0:如果秒匹配,則鬧鐘 A 置 1

1:在鬧鐘 A 比較中,秒無(wú)關(guān)

位 6:4 ST[2:0]:秒的十位(BCD 格式)

位 3:0 SU[3:0]:秒的個(gè)位(BCD 格式)

鬧鐘B寄存器RTC_ALRMBR與鬧鐘A寄存器RTC_ALRMAR的寄存器功能一樣,這里不再進(jìn)行介紹。

RTC鬧鐘配置函數(shù)和中斷處理函數(shù)

void RTC_AlarmConfig(u8 Alarm_sel,u8 Alarm_set,u8 Alarm_day,u8 Alarm_hour,u8 Alarm_minute)
{
  u32 prigroup = 0;
  u32 priority = 0;
  u32 temp = 0;

  //1.解除保護(hù)
  //寫密鑰:先寫0xca,再寫0x53
  RTC- >WPR  =  0XCA;
  RTC- >WPR  = 0X53;

  switch(Alarm_set)
  {
    case SPECIAL_DAY:
      temp |= Alarm_day< 24;  //設(shè)置具體星期
      break;

    case WORK_DAY:
    case ALL_DAY:
      temp |= (u32)(1< 31);
      break;

    case DISABLE_DAY:
      break;
  }

  temp |= 1< 30;                //用星期來(lái)匹配
  temp |= ((Alarm_hour/10)< 4  |  (Alarm_hour%10))< 16 | 1< 23;
  temp |= ((Alarm_minute/10)< 4  |  (Alarm_minute%10))< 8 | 1< 15;
  temp |= 1< 7;

  //關(guān)閉鬧鐘,等待鬧鐘可寫入
  if(Alarm_sel == ALARM_A)
  {
    RTC- >CR  &= ~(1< 8);
    while((RTC- >ISR & (1< 0)) == 0){}
    RTC- >ALRMAR = temp;
    RTC- >CR |= 1< 8;      //開啟鬧鐘A
    //開鬧鐘A的中斷
    RTC- >CR |= 1< 12;
    //清中斷標(biāo)記
    RTC- >ISR &= ~(1< 8);  
  }
  else if(Alarm_sel == ALARM_B)
  {
    RTC- >CR  &= ~(1< 9);
    while((RTC- >ISR & (1< 1)) == 0){}
    RTC- >ALRMBR = temp;
    RTC- >CR |= 1< 9;    //開啟鬧鐘B
    //開鬧鐘B的中斷
    RTC- >CR |= 1< 13;      
    //清中斷標(biāo)記
    RTC- >ISR &= ~(1< 9);
  }

  //鬧鐘中斷對(duì)應(yīng)于外部中斷線,因此要設(shè)置外部中斷線(17)
  EXTI- >IMR  |= 1< 17;
  EXTI- >RTSR  |= 1< 17;      //鬧鐘中斷需設(shè)置為上升沿
  //清中斷標(biāo)記
  EXTI- >PR  |= 1< 17;

  prigroup = NVIC_GetPriorityGrouping();
  priority = NVIC_EncodePriority(prigroup,1,2);
  NVIC_SetPriority(RTC_Alarm_IRQn,priority);
  NVIC_EnableIRQ(RTC_Alarm_IRQn);

  switch(Alarm_set)
  {
    case SPECIAL_DAY:
      break;

    case WORK_DAY:
      temp = (RTC- >DR  &  0x0000e000) >>13;
      if(temp  >5)
      {
        if(Alarm_sel == ALARM_A)
          RTC- >CR  &= ~(1< 8);
        else if(Alarm_sel == ALARM_B)
          RTC- >CR  &= ~(1< 9);
      }
      else
      {
        if(Alarm_sel == ALARM_A)
          RTC- >CR  |= 1< 8;
        else if(Alarm_sel == ALARM_B)
          RTC- >CR  |= 1< 9;
      }
      break;

    case ALL_DAY:
      break;

    case DISABLE_DAY:
      if(Alarm_sel == ALARM_A)
          RTC- >CR  &= ~(1< 8);
      else if(Alarm_sel == ALARM_B)
          RTC- >CR  &= ~(1< 9);
      break;
  }

  //2. 再次保護(hù)
  RTC- >WPR  = 0XFF;          //寫任意值,再次保護(hù)
}


//中斷處理
void RTC_Alarm_IRQHandler()
{
  EXTI- >PR  |= 1< 17;
  //中斷處理
  if(RTC- >ISR & (1< 8))
  {
    RTC- >ISR  &= ~(1< 8);
    //鬧鐘A中斷處理
    LED_Toggle(DS1);
  }
  else if(RTC- >ISR & (1< 9))
  {
    RTC- >ISR  &= ~(1< 9);
    //鬧鐘B中斷處理
  }
}

由于鬧鐘的編寫比較簡(jiǎn)單,這里就不多加描述了,接下來(lái)編寫主函數(shù)進(jìn)行測(cè)試。

#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
#include "stdio.h"
#include "RTC.h"
#include "led.h"


typedef struct
{
  u8 shi;
  u8 fen;
  u8 miao;
  u8 nian;
  u8 yue;
  u8 ri;
  u8 xingqi;
}TIME_Typedef;
TIME_Typedef time = {1};


int main()
{
  LED_Init();
  Usart1_Init(115200);
  RTC_Init(23,59,50,19,7,9,2);
  RTC_AlarmConfig(ALARM_A,SPECIAL_DAY,3,0,0);

  while(1)
  {
    time.shi    =    ((RTC- >TR  &  0x300000) >>20)*10  +  ((RTC- >TR  &  0xf0000) >>16);
    time.fen    =    ((RTC- >TR  &  0x7000) >>12)*10  +  ((RTC- >TR  &  0xf00) >>8);
    time.miao    =    ((RTC- >TR  &  0x70) >>4)*10  +  (RTC- >TR  &  0xf);


    printf("%d:%d:%drn",time.shi,time.fen,time.miao);

    Delay_ms(1000);
  }
}

初始時(shí)間設(shè)為23:59:50,鬧鐘時(shí)間設(shè)為0:0:0。運(yùn)行程序,經(jīng)過(guò)10秒鐘后,鬧鐘進(jìn)入中斷,LED燈實(shí)現(xiàn)翻轉(zhuǎn),RTC鬧鐘實(shí)驗(yàn)測(cè)試成功。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124244
  • 計(jì)時(shí)器
    +關(guān)注

    關(guān)注

    1

    文章

    432

    瀏覽量

    33681
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    11245
  • BCD編碼
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    6135
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    621

    瀏覽量

    68742
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32 RTC實(shí)時(shí)時(shí)鐘(一)

    STM32處理器內(nèi)部集成了實(shí)時(shí)時(shí)鐘控制器(RTC),因此在實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘功能時(shí),無(wú)須外擴(kuò)時(shí)鐘芯片即可構(gòu)建實(shí)
    的頭像 發(fā)表于 07-22 15:41 ?5540次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(一)

    RTC實(shí)時(shí)時(shí)鐘簡(jiǎn)介

    RTC實(shí)時(shí)時(shí)鐘1. RTC實(shí)時(shí)時(shí)鐘簡(jiǎn)介2. 硬件設(shè)計(jì)3. 軟件設(shè)計(jì)3.1 STM32CubeMX設(shè)置3.2 MDK-ARM編程4. 下載驗(yàn)證
    發(fā)表于 08-18 06:55

    如何去實(shí)現(xiàn)STM32實(shí)時(shí)時(shí)鐘RTC的時(shí)間計(jì)算部分

    STM32實(shí)時(shí)時(shí)鐘RTC是什么?STM32實(shí)時(shí)時(shí)鐘RTC是由哪些部分組成的?如何去實(shí)現(xiàn)
    發(fā)表于 11-22 06:33

    如何去使用STM32實(shí)時(shí)時(shí)鐘RTC

    實(shí)時(shí)時(shí)鐘RTC是什么?如何去使用STM32實(shí)時(shí)時(shí)鐘RTC呢?有哪些注意事項(xiàng)?
    發(fā)表于 11-22 08:05

    RTC是什么?RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)

    文章目錄前言一、RTC是什么?、RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言前面我們說(shuō)了OLED實(shí)驗(yàn),是一個(gè)比較好的顯示測(cè)試代碼的方法?,F(xiàn)在我們學(xué)習(xí)關(guān)于
    發(fā)表于 01-13 07:19

    STM32F2技術(shù)培訓(xùn)_實(shí)時(shí)時(shí)鐘_RTC

    STM32F2 技術(shù)培訓(xùn)_實(shí)時(shí)時(shí)鐘_RTC
    發(fā)表于 12-03 17:35 ?0次下載

    ALIENTEK_MINISTM32_實(shí)驗(yàn)11_RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)

    ALIENTEK MINISTM32 實(shí)驗(yàn)11 RTC實(shí)時(shí)時(shí)鐘實(shí)驗(yàn),很好的資料,快來(lái)下載吧
    發(fā)表于 02-19 11:35 ?18次下載

    STM32F0xx_ RTC實(shí)時(shí)時(shí)鐘配置詳細(xì)過(guò)程

    STM32F0xx_RTC實(shí)時(shí)時(shí)鐘配置詳細(xì)過(guò)程
    的頭像 發(fā)表于 04-07 11:50 ?8779次閱讀
    <b class='flag-5'>STM32</b>F0xx_ <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>配置詳細(xì)過(guò)程

    STM32 RTC實(shí)時(shí)時(shí)鐘資料下載

    電子發(fā)燒友網(wǎng)為你提供STM32 RTC實(shí)時(shí)時(shí)鐘資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-16 08:48 ?34次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>資料下載

    淺談RTC實(shí)時(shí)時(shí)鐘特征與原理

    一、RTC實(shí)時(shí)時(shí)鐘特征與原理 查看STM32中文手冊(cè) 16 實(shí)時(shí)時(shí)鐘RTC)(308頁(yè)) RTC
    的頭像 發(fā)表于 06-30 15:54 ?1.1w次閱讀

    STM32CubeMX | 40 - 實(shí)時(shí)時(shí)鐘RTC的使用(日歷和鬧鐘)

    STM32CubeMX | 40 - 實(shí)時(shí)時(shí)鐘RTC的使用(日歷和鬧鐘)
    發(fā)表于 11-23 18:06 ?19次下載
    <b class='flag-5'>STM32</b>CubeMX | 40 - <b class='flag-5'>實(shí)時(shí)時(shí)鐘</b><b class='flag-5'>RTC</b>的使用(日歷和鬧鐘)

    stm32f4 RTC實(shí)時(shí)時(shí)鐘解析

    應(yīng)用最為廣泛的消費(fèi)類電子產(chǎn)品之一。它為人們提供精確的實(shí)時(shí)時(shí)間,或者為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn),目前實(shí)時(shí)時(shí)鐘芯片大多采用精度較高的晶體振蕩器作為時(shí)鐘源。對(duì)于STM32F的
    發(fā)表于 12-04 18:06 ?19次下載
    <b class='flag-5'>stm32</b>f4 <b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>解析

    STM32CubeMX系列|RTC實(shí)時(shí)時(shí)鐘

    RTC實(shí)時(shí)時(shí)鐘1. RTC實(shí)時(shí)時(shí)鐘簡(jiǎn)介2. 硬件設(shè)計(jì)3. 軟件設(shè)計(jì)3.1 STM32CubeMX設(shè)置3.2 MDK-ARM編程4. 下載驗(yàn)證
    發(fā)表于 12-24 19:15 ?16次下載
    <b class='flag-5'>STM32</b>CubeMX系列|<b class='flag-5'>RTC</b><b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>

    基于STM32單片機(jī)RTC實(shí)時(shí)時(shí)鐘使用庫(kù)文件設(shè)計(jì)

    基于STM32單片機(jī)RTC實(shí)時(shí)時(shí)鐘使用庫(kù)文件設(shè)計(jì)源代碼
    發(fā)表于 04-26 14:28 ?5次下載

    CW32實(shí)時(shí)時(shí)鐘RTC)介紹

    CW32實(shí)時(shí)時(shí)鐘RTC)介紹
    的頭像 發(fā)表于 10-24 15:36 ?1636次閱讀
    CW32<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(<b class='flag-5'>RTC</b>)介紹