8 STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用

函数描述格式:

函数名外设函数的名称
函数原形原形声明
功能描述简要解释函数是如何执行的
输入参数{x}输入参数描述
输出参数{x}输出参数描述
返回值函数的返回值
先决条件调用函数前应满足的要求
被调用函数其他被该函数调用的库函数

缩写定义

缩写外设/单元
ADC模数转换器
BKP备份寄存器
CAN控制器局域网模块
DMA直接内存存取控制器
EXTI外部中断事件控制器
FLASH闪存存储器
GPIO通用输入输出
I2C内部集成电路
IWDG独立看门狗
NVIC嵌套中断向量列表控制器
PWR电源/功耗控制
RCC复位与时钟控制器
RTC实时时钟
SPI串行外设接口
SysTick系统嘀嗒定时器
TIM通用定时器
TIM1高级控制定时器
USART通用同步异步接收发射端
WWDG窗口看门狗

1. 图片有格式

因为从OneNote复制到优快云上只能是图片,粘贴不了文字,所以就显示图片,在该博客后半部分会补充上相关函数的文字。
如果只是学习了解函数可以看图片,图片有格式,比较友好;需要使用某个函数,可以去博客后半部分copy使用。
在这里插入图片描述

2 文字无格式

八 库函数之实时时钟(RTC)所有函数的介绍及使用

前言
RTC 提供了一系列连续工作的计数器,配合适当的软件, 具有提供时钟- 日历的功能。写入计数器的值可 以设置整个系统的时间/日期。
实时时钟(RTC)是一种计时和时间跟踪设备,通常用于计算机系统、嵌入式系统和电子设备中。其主要功能是精确地测量时间,包括日期和时间,以及跟踪时间的流逝。以下是有关实时时钟的一些重要信息:
精确性:RTC 设备设计用来提供高度准确的时间测量。它们通常能够保持时间准确性,即使系统断电或关机也能保持。
使用场景:RTC 主要用于记录时间戳、计时、数据日志、事件调度等应用。它们在很多领域都有用武之地,包括计算机系统、网络设备、嵌入式系统、自动化系统、移动设备、汽车和电子设备等。
RTC 设备类型:有多种类型的RTC设备,包括硬件RTC芯片、软件RTC以及混合型RTC。硬件RTC通常是一块独立的芯片,内置时钟电路和电池备份,以确保即使系统关闭或掉电也能继续运行。软件RTC则通过系统软件来模拟RTC功能,通常不具备硬件RTC的精确性。混合型RTC则结合了硬件和软件元素。
电池备份:RTC通常需要电池备份,以确保在断电或系统关机时仍能保持时间的准确性。这些备用电池通常设计成可持续供电多年。
接口:RTC设备通常具有通信接口,以便与主机系统进行交互,如I2C(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)或UART(Universal Asynchronous Receiver-Transmitter)。
使用范围:RTC设备的使用范围非常广泛,从简单的手表和闹钟,到复杂的服务器、路由器和工业控制系统,都需要时间精确的功能。

函数描述格式:
函数名 外设函数的名称
函数原形 原形声明
功能描述 简要解释函数是如何执行的
输入参数{x} 输入参数描述
输出参数{x} 输出参数描述
返回值 函数的返回值
先决条件 调用函数前应满足的要求
被调用函数 其他被该函数调用的库函数
一、图片预览,无格式(优快云)

二、RTC库函数固件库函数预览

RTC_ITConfig 使能或者失能指定的 RTC 中断
RTC_EnterConfigMode 进入 RTC 配置模式
RTC_ExitConfigMode 退出 RTC 配置模式
RTC_GetCounter 获取 RTC 计数器的值
RTC_SetCounter 设置 RTC 计数器的值
RTC_SetPrescaler 设置 RTC 预分频的值
RTC_SetAlarm 设置 RTC 闹钟的值
RTC_GetDivider 获取 RTC 预分频分频因子的值
RTC_WaitForLastTask 等待最近一次对 RTC 寄存器的写操作完成
RTC_WaitForSynchro 等待 RTC 寄存器(RTC_CNT, RTC_ALR and RTC_PRL)与 RTC 的 APB 时钟同步
RTC_GetFlagStatus 检查指定的 RTC 标志位设置与否
RTC_ClearFlag 清除 RTC 的待处理标志位
RTC_GetITStatus 检查指定的 RTC 中断发生与否
RTC_ClearITPendingBit 清除 RTC 的中断待处理位

2.1 函数RTC_ITConfig

函数名 RTC_ITConfig
函数原形 void RTC_ITConfig(u16 RTC_IT, FunctionalState NewState)
功能描述 使能或者失能指定的 RTC 中断
输入参数 1 RTC_IT:待使能或者失能的 RTC 中断源
参阅 Section:RTC_IT 查阅更多该参数允许取值范围
输入参数 2 NewState:RTC 中断的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 无
RTC_IT
输入参数 RTC_IT 使能或者失能 RTC 的中断。可以取下表的一个或者多个取值的组合作为该参数的值。
_

RTC_IT 描述
RTC_IT_OW 溢出中断使能
RTC_IT_ALR 闹钟中断使能
RTC_IT_SEC 秒中断使能
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Alarm interrupt enabled */
RTC_ITConfig(RTC_IT_ALR, ENABLE);

2.2 函数RTC_EnterConfigMode

函数名 RTC_EnterConfigMode
函数原形 void RTC_EnterConfigMode(void)
功能描述 进入 RTC 配置模式
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Enable the configuration mode */
RTC_EnterConfigMode();

2.3 函数RTC_ExitConfigMode

函数名 RTC_ExitConfigMode
函数原形 void RTC_ExitConfigMode(void)
功能描述 退出 RTC 配置模式
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Exit the configuration mode */
RTC_ExitConfigMode();

2.4 函数RTC_GetCounter

函数名 RTC_GetCounter
函数原形 u32 RTC_GetCounter(void)
功能描述 获取 RTC 计数器的值
输入参数 无
输出参数 无
返回值 RTC 计数器的值
先决条件 无
被调用函数 无
例:
/* Gets the counter value */
u32 RTCCounterValue;
RTCCounterValue = RTC_GetCounter();

.2.5 函数RTC_SetCounter

函数名 RTC_SetCounter
函数原形 void RTC_SetCounter(u32 CounterValue)
功能描述 设置 RTC 计数器的值
输入参数 CounterValue:新的 RTC 计数器值
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 RTC_EnterConfigMode()
RTC_ExitConfigMode()
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Sets Counter value to 0xFFFF5555 */
RTC_SetCounter(0xFFFF5555);

2.6 函数RTC_SetPrescaler

函数名 RTC_SetPrescaler
函数原形 void RTC_SetPrescaler(u32 PrescalerValue)
功能描述 设置 RTC 预分频的值
输入参数 PrescalerValue:新的 RTC 预分频值
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 RTC_EnterConfigMode()
RTC_ExitConfigMode()
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Sets Prescaler value to 0x7A12 */
RTC_SetPrescaler(0x7A12);

2.7 函数RTC_SetAlarm

函数名 RTC_ SetAlarm
函数原形 void RTC_SetAlarm(u32 AlarmValue)
功能描述 设置 RTC 闹钟的值
输入参数 AlarmValue:新的 RTC 闹钟值
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 RTC_EnterConfigMode()
RTC_ExitConfigMode()
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Sets Alarm value to 0xFFFFFFFA */
RTC_SetAlarm(0xFFFFFFFA);

2.8 函数RTC_GetDivider

函数名 RTC_GetDivider
函数原形 u32 RTC_GetDivider(void)
功能描述 获取 RTC 预分频分频因子的值
输入参数 无
输出参数 无
返回值 RTC 预分频分频因子的值
先决条件 无
被调用函数 无
例:
/* Gets the current RTC Divider value */
u32 RTCDividerValue;
RTCDividerValue = RTC_GetDivider();

2.9 函数RTC_WaitForLastTask

函数名 RTC_WaitForLastTask
函数原形 void RTC_WaitForLastTask(void)
功能描述 等待最近一次对 RTC 寄存器的写操作完成
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Sets Alarm value to 0x10 */
RTC_SetAlarm(0x10);

2.10 函数RTC_WaitForSynchro

函数名 RTC_WaitForSynchro
函数原形 void RTC_WaitForSynchro(void)
功能描述 等待最近一次对 RTC 寄存器的写操作完成
输入参数 无
输出参数 无
返回值 无
先决条件 无
被调用函数 无
例:
/* Wait until the RTC registers are synchronized with RTC APB clock */
RTC_WaitForSynchro();

2.11 函数RTC_GetFlagStatus

函数名 RTC_ GetFlagStatus
函数原形 FlagStatus RTC_GetFlagStatus(u16 RTC_FLAG)
功能描述 检查指定的 RTC 标志位设置与否
输入参数 2 RTC_FLAG:待检查的 RTC 标志位
参阅 Section:RTC_FLAG 查阅更多该参数允许取值范围
输出参数 无
返回值 RTC_FLAG 的新状态(SET 或者 RESET)
先决条件 无
被调用函数 无
RTC_FLAG
_

RTC_FLAG 描述
RTC_FLAG_RTOFF RTC 操作 OFF 标志位
RTC_FLAG_RSF 寄存器已同步标志位
RTC_FLAG_OW 溢出中断标志位
RTC_FLAG_ALR 闹钟中断标志位
RTC_FLAG_SEC 秒中断标志位
例:
/* Gets the RTC overflow interrupt status */
FlagStatus OverrunFlagStatus;
OverrunFlagStatus = RTC_GetFlagStatus(RTC_Flag_OW);

2.12 函数RTC_ClearFlag

函数名 RTC_ClearFlag
函数原形 void RTC_ClearFlag(u16 RTC_FLAG)
功能描述 清除 RTC 的待处理标志位
输入参数 RTC_FLAG:待清除的 RTC 标志位
参阅 Section:I2C_FLAG 查阅更多该参数允许取值范围
注意:标志位RTC_FLAG_RTOFF 不能用软件清除, 标志位RTC_FLAG_RSF 只有在 APB 复位,或者 APB 时钟停止后,才可以清除
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 无
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Clears the RTC overflow flag */
RTC_ClearFlag(RTC_FLAG_OW);

2.13 函数RTC_GetITStatus

函数名 RTC_GetITStatus
函数原形 ITStatus RTC_GetITStatus(u16 RTC_IT)
功能描述 检查指定的 RTC 中断发生与否
输入参数 2 RTC_IT:待检查的 RTC 中断
参阅 Section:RTC_IT 查阅更多该参数允许取值范围
输出参数 无
返回值 RTC_IT 的新状态(SET 或者 RESET)
先决条件 无
被调用函数 无
例:
/* Gets the RTC Second interrupt status */
ITStatus SecondITStatus;
SecondITStatus = RTC_GetITStatus(RTC_IT_SEC);

2.14 函数RTC_ClearITPendingBit


函数名 RTC_ClearITPendingBit
函数原形 ITStatus RTC_GetITStatus(u16 RTC_IT)
功能描述 清除 RTC 的中断待处理位
输入参数 2 RTC_IT:待清除的 RTC 中断待处理位
参阅 Section:RTC_IT 查阅更多该参数允许取值范围
输出参数 无
返回值 无
先决条件 在使用本函数前必须先调用函数 RTC_WaitForLastTask(), 等待标志位 RTOFF 被设置
被调用函数 无
例:
/* Wait until last write operation on RTC registers is terminated /
RTC_WaitForLastTask();
/
Clears the RTC Second interrupt */
RTC_ClearITPendingBit(RTC_IT_SEC);

该文档修改记录:

修改时间修改说明
2023年11月11日第一次发布,介绍了STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用

总结

以上就是STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用的内容,本文介绍了 内部集成电路(I2C)所有函数的介绍及使用所有函数的简单使用。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

<think>好的,用户想了解RCAB模块在图像超分辨率任务中的作用和原理。首先,我需要回忆一下RCAB的相关知识。RCAB全称是Residual Channel Attention Block,应该是在残差块的基础上加入了通道注意力机制。这通常用于提升超分辨率模型的性能。 记得残差块(Residual Block)在ResNet中被广泛使用,通过跳跃连接缓解梯度消失的问题,帮助训练更深的网络。而通道注意力机制,比如SENet中的Squeeze-and-Excitation模块,能够自动学习各个通道的重要性,增强有用的特征,抑制不重要的。RCAB可能结合了这两者。 接下来,需要确认RCAB的具体结构。根据常见的设计,RCAB可能包含多个卷积层,然后是通道注意力模块,最后通过残差连接相加。这样可以在提取特征的同时,动态调整各通道的权重,让网络更关注重要的信息。 在超分辨率任务中,RCAB的作用应该是增强高频细节的恢复,比如边缘和纹理,这对于提升图像清晰度至关重要。同时,通道注意力机制能有效利用通道间的依赖关系,优化特征表达,从而提升重建质量。 应用场景方面,RCAB可能被用于如EDSR、RCAN等超分辨率模型中。这些模型通常堆叠多个RCAB模块,通过深层的网络结构逐步恢复高分辨率图像。特别是在处理大倍数超分辨率(如4x、8x)时,RCAB能帮助保持细节,减少模糊。 还需要考虑RCAB的优势。比如,通过残差学习简化了优化过程,而通道注意力则增强了特征的区分能力。这可能使得模型在计算资源有限的情况下仍能保持高效,同时提升性能。 需要验证这些信息是否正确。参考用户提供的资料,引用[1]提到多尺度卷积和特征融合,引用[2]提到信息交互和注意力机制。虽然没有直接提到RCAB,但通道注意力属于注意力机制的一种,符合引用中的信息。因此可以推断RCAB的应用场景与这些模块类似,用于特征提取和优化。 总结来说,RCAB的作用是通过残差结构和通道注意力机制,有效提取并优化特征,提升超分辨率重建的质量。应用场景包括各种基于深度学习的超分辨率模型,特别是在需要恢复细节和高效利用特征时。</think>RCAB(Residual Channel Attention Block)模块在图像超分辨率任务中主要用于**增强特征表达能力并优化高频细节恢复**,其核心原理是通过残差学习与通道注意力机制的结合,动态调整特征通道的重要性权重。 ### 作用与原理分步说明: 1. **残差学习框架** RCAB基于残差块(Residual Block)设计,包含两个卷积层和激活函数,通过跳跃连接(Skip Connection)将输入与输出相加。这种方式缓解了梯度消失问题,支持更深的网络训练,公式为: $$F(x) = H(x) + x$$ 其中$H(x)$为残差函数,$x$为输入特征。 2. **通道注意力机制** 在残差块后引入通道注意力模块(Channel Attention Module),通过全局平均池化(Global Average Pooling)统计通道特征,并利用全连接层生成通道权重: $$w_c = \sigma(W_2 \cdot \delta(W_1 \cdot \text{GAP}(x)))$$ 其中$\sigma$为Sigmoid函数,$\delta$为ReLU,$W_1$和$W_2$为全连接层参数。最终输出特征为各通道加权后的结果: $$x' = w_c \cdot x$$ 该机制使网络自动关注对重建更重要的特征通道[^1]。 3. **多尺度特征融合** RCAB常与多尺度特征提取模块结合(如引用[1]中提到的多尺度卷积层),通过不同感受野的卷积核捕获低频和高频信息,再利用通道注意力筛选关键特征,减少冗余计算,提升重建效率。 ### 应用场景 - **单图像超分辨率(SISR)**:如RCAN(Residual Channel Attention Networks)模型,通过堆叠多个RCAB模块恢复高分辨率图像的细节[^2]。 - **多模态超分辨率融合**:在红外与可见光图像融合任务中,RCAB用于增强跨模态特征的表征能力,保留边缘和纹理信息[^1]。 - **轻量化超分辨率网络**:由于通道注意力可抑制无效特征,RCAB在减少计算量的同时保持性能,适用于移动端部署。 ### 示例模型结构 ```python class RCAB(nn.Module): def __init__(self, channels): super().__init__() self.conv1 = nn.Conv2d(channels, channels, 3, padding=1) self.conv2 = nn.Conv2d(channels, channels, 3, padding=1) self.ca = ChannelAttention(channels) # 通道注意力模块 def forward(self, x): res = self.conv1(x) res = F.relu(res) res = self.conv2(res) res = self.ca(res) # 通道加权 return x + res # 残差连接 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值