完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我将 STM32L151RET6 编程为使用 EXti20 线提供 RTC 中断。系统每秒从睡眠模式唤醒,它执行一段小代码并离开中断。
例如: void RTC_IRQ_Handler(void) { // { 我的代码在这里 } // PWR->CR |= PWR_CR_DBP; // RTC->ISR &= ~RTC_ISR_WUTF; // PWR->CR &= ~PWR_CR_DBP; // EXTI_ClearPendingExti20(); } 中断正在工作,但我每天有几秒钟的延迟。 只有在之前设置了标志 PWR_CR_DBP 时,才能擦除标志 RTC_ISR_WUTF。 如果我不使用中断,RTC 时钟运行良好。 如果我总是让标志 PWR_CR_DBP 设置,中断被执行但 RTC 时钟停止。日期和时间被冻结。 如果标志 RTC_ISR_WUTF 未在中断例程内重置,则中断仅执行一次(这是正常的)。 我使用的 RTC 时钟是 LSE。 我认为当设置 DBP 位时,RTC 时钟停止,这就是延迟的原因。 是否可以在不设置 DBP 之前重置 WUTF? 在参考手册中有这样的信息: “该寄存器受写保护(RTC_ISR[13:8] 位除外)。写访问过程在第 514 页的 RTC 寄存器写保护中进行了描述。”
"RTC寄存器写保护 系统复位后,通过 PWR 电源控制寄存器 (PWR_CR) 的 DBP 位保护 RTC 寄存器免受寄生写访问。必须设置 DBP 位以启用 RTC 寄存器写访问。”
有人有同样的问题吗? |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2644 浏览 1 评论
3209 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1784 浏览 1 评论
3613 浏览 6 评论
5990 浏览 21 评论
940浏览 4评论
1317浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
585浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1304浏览 3评论
1362浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 07:26 , Processed in 1.847668 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号