OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5127|回复: 1

关于RTC闹钟与外部中断线17的疑问

[复制链接]

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-9-3 12:25:07 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 学习stm32f4 于 2018-9-3 12:28 编辑

在探索者RTC实验中,RTC_Set_AlarmA()函数里有对外部中断17的初始化:
[mw_shl_code=c,true]        EXTI_InitStructure.EXTI_Line = EXTI_Line17;//LINE17
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE17
  EXTI_Init(&EXTI_InitStructure);//配置[/mw_shl_code]
根据参考手册,外部中断线17连接到了RTC闹钟事件,如图1所示。
那么,为何上升沿(EXTI_Trigger_Rising)是外部中断17的触发条件呢?
我在参考手册的RTC_CR寄存器中看到位22:21和位20,如图2所示,这也许跟设置外部中断17为上升沿触发相关。
RTC_CR的默认值是0x0000 0000,也就是说RTC闹钟是禁止输出的,在RTC_AlarmCmd()和RTC_ITConfig()中没有找到开启RTC闹钟输出的设置,
也没有找到对RTC_ALARM输出极性(即位20)的设置,这是怎么回事呢?

1.jpg
2.jpg

最佳答案

查看完整内容[请看2#楼]

RTC_ISR的位9或位8接到了外部中断线17,位10接到了外部中断线22。 以外部中断线22为例,当RTC唤醒事件发生时,位10置位,产生上升沿传递给外部中断线22,所有在初始化外部中断线22时使用上升沿触发。这在库函数RTC_ClearITPendingBit()中有一个佐证(注意,在该函数中RTC_IT>>4了)。而RTC_CR寄存器的位20是控制RTC_AF1(PC13)上的电平高低,位22:21是控制RTC_AF1引脚上输出的是ALRAF、ALRBF或WUTF。例如,OSEL[1:0]=0x01,POL=0 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2018-9-3 12:25:08 | 显示全部楼层
本帖最后由 学习stm32f4 于 2018-9-3 16:57 编辑

RTC_ISR的位9或位8接到了外部中断线17,位10接到了外部中断线22。
以外部中断线22为例,当RTC唤醒事件发生时,位10置位,产生上升沿传递给外部中断线22,所有在初始化外部中断线22时使用上升沿触发。这在库函数RTC_ClearITPendingBit()中有一个佐证(注意,在该函数中RTC_IT>>4了)。而RTC_CR寄存器的位20是控制RTC_AF1(PC13)上的电平高低,位22:21是控制RTC_AF1引脚上输出的是ALRAF、ALRBF或WUTF。例如,OSEL[1:0]=0x01,POL=0时,当闹钟A事件发生时,RTC_AF1引脚对外输出高电平。注意,F407ZG没有PI8(与RTC_AF2复用),只有PC13(与RTC_AF1复用)。

感谢技术支持阿峰。


1.jpg
2.jpg
3.jpg
0.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 11:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表