rtc.c

来自「stm32初级例程」· C语言 代码 · 共 54 行

C
54
字号

/**************************************************************
**  精英STM32开发板
**  版本:V1.0
**  功能:	该例子用RTC产生1秒中断,驱动LED闪烁
			STM32的RTC实际是一个32位的计数器,要得到时分秒信号需要自己转换

***************************************************************/

#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
#include "STM32_Init.h"                           // STM32 Initialization


unsigned int ledPosSec = 0;                     // led position for second
unsigned int ledPosAlarm = 2;                     // led position for Alarm
unsigned int ledRtcSec = 0;


#define  LED_OFF 	GPIOC->ODR|=0x00000007
#define  LED_ON 	GPIOC->ODR&=(~0x00000007)
/*------------------------------------------------------------------------------
  RTC Interrupt Handler
  RTC中断函数
 *------------------------------------------------------------------------------*/
void RTC_IRQHandler(void)
{
   if (RTC->CRL & (1 << 0))
   {
      // check second flag/检查是否是秒中断
      RTC->CRL &= ~(1 << 0);
      if ((ledRtcSec ^= 1) == 0)
         LED_OFF;//LED off LED熄灭
      else
         LED_ON;//LED on LED点亮 

   }
} // end RTC_IRQHandler


/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main(void)
{
   // STM32 setup
   //STM32初始化
   stm32_Init();

   while (1)
   {
      // Loop forever
       ;} // end while
} // end main

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?