欢迎来到天天文库
浏览记录
ID:38142704
大小:26.00 KB
页数:3页
时间:2019-05-28
《STM32最简单的RTC中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include"stm32f10x.h"voidspark(void);voidRTC_Configuration(void);inti=0;intmain(){NVIC_InitTypeDefNVIC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_Ini
2、tStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOF,&GPIO_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=RTC_IRQn;NVIC_InitStructure.NVIC_IRQChannelPree
3、mptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x00000);RTC_Configuration();while(1);}voidspark(void){i++;if(i==1){GPI
4、O_ResetBits(GPIOF,GPIO_Pin_6);}if(i==2){GPIO_SetBits(GPIOF,GPIO_Pin_6);i=0;}}voidRTC_Configuration(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);PWR_BackupAccessCmd(ENABLE);RCC_LSEConfig(RCC_LSE_ON);while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==
5、RESET);RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);RCC_RTCCLKCmd(ENABLE);RTC_WaitForSynchro();RTC_ITConfig(RTC_IT_SEC,ENABLE);RTC_WaitForLastTask();RTC_SetPrescaler(32767);RTC_WaitForLastTask();}以上是主函数内容,写完主函数然后在stm32f10x_it.c中的#include"stm32f10x_it.h"下面添加
6、externvoidsptiark(void);然后在文件的后面添加中断函数voidRTC_IRQHandler(void){if(RTC_GetITStatus(RTC_IT_SEC)!=RESET){spark();RTC_ClearITPendingBit(RTC_IT_SEC);RTC_WaitForLastTask();}}就OK了。此程序是利用RTC时钟实现的一个LED闪烁的功能,非常简单,很适合初学者。(固件库是3.5的)
此文档下载收益归作者所有