完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例程11实时时钟的RTC驱动程序片段如下:
if(BKP->DR1!=0X5050)//第一次配置 { RCC->APB1ENR|=1<<28; //使能电源时钟 RCC->APB1ENR|=1<<27; //使能备份时钟 WR->CR|=1<<8; //取消备份区写保护 RCC->BDCR|=1<<16; //备份区域软复位 RCC->BDCR&=~(1<<16); //备份区域软复位结束 RCC->BDCR|=1<<0; //开启外部低速振荡器 while((!(RCC->BDCR&0X02))&&temp<250)//等待外部时钟就绪 { temp++; delay_ms(10); }; if(temp>=250)return 1;//初始化时钟失败,晶振有问题 RCC->BDCR|=1<<8; //LSI作为RTC时钟 RCC->BDCR|=1<<15;//RTC时钟使能 RTC->RLH=0X0000; RTC->RLL=32767; //时钟周期设置(有待观察,看是否跑慢了?)理论值:32767 while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成 while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步 RTC->CRH|=0X01; //允许秒中断 while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成 RTC->CRL|=1<<4; //允许配置 RTC_Set(2010,6,6,10,56,55); //设置时间 RTC->CRL&=~(1<<4); //配置更新 while(!(RTC->CRL&(1<<5))); //等待RTC寄存器操作完成 BKP->DR1=0X5050; //BKP_Write(1,0X5050);;//在寄存器1标记已经开启了 //printf("FIRST tiMEn"); }else//系统继续计时 { while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步 RTC->CRH|=0X01; //允许秒中断 while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成 //printf("OKn"); } MY_NVIC_Init(0,0,RTC_IRQChannel,2);//RTC,G2,P2,S2.优先级最低 RTC_Get();//更新时间 return 0; //ok 应该是这句“ RTC_Set(2011,6,2,10,56,55); //设置时间 ”为什么我修改了这句却得不到当前的时间? 原子大哥,希望你能帮助我看一下,谢谢! |
|
相关推荐
2个回答
|
|
哪个实验?
|
|
|
|
RTC实时时钟例程
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1713 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1600 浏览 1 评论
1038 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
715 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1651 浏览 2 评论
1904浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
698浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
548浏览 3评论
570浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
535浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 23:25 , Processed in 1.658095 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号