我正在尝试在STM32F469I-DISCO板上初始化RTC。由于我仍在学习,所以我尝试使用HAL API,使我可以完成一些项目,直到我对这种微控制器有了足够的了解,可以直接与寄存器一起使用。
无论如何,我的代码使用了CubeF4的STM32F469I-DISCO模板,该模板允许直接加载HAL层和系统时钟(通过8 MHz HSE振荡器获得180 MHz)。
为了初始化RTC,我遵循了UM1725中给出的说明:STM32F4 HAL和LL驱动程序说明。在页面715,第55.2.4节中,您具有使用HAL_RTC API的说明。
第一点说,有必要启用“ RTC域访问”。在上一节(55.2.3,同一页)中解释了这一点。
我做了要求做的事情。这是我的代码(简化后,我只允许RTC Init部分和系统时钟配置):
#include "main.h"
RTC_HandleTypeDef rtcHandle;
RTC_InitTypeDef rtcInit;
RTC_TimeTypeDef rtcTime;
RTC_DateTypeDef rtcDate;
static void SystemClock_Config(void);
static void Error_Handler(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
////////////////// RTC
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
__HAL_RCC_RTC_ENABLE();
rtcInit.HourFormat = RTC_HOURFORMAT_24;
rtcInit.AsynchPrediv = 0x7F;
rtcInit.SynchPrediv = 0xFF;
rtcInit.OutPut = RTC_OUTPUT_DISABLE;
rtcInit.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
rtcInit.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
rtcHandle.Instance = RTC;
rtcHandle.Init = rtcInit;
HAL_RTC_Init(&rtcHandle);
rtcTime.Hours = 12;
rtcTime.Minutes = 30;
rtcTime.Seconds = 40;
rtcDate.WeekDay = RTC_WEEKDAY_WEDNESDAY; …Run Code Online (Sandbox Code Playgroud) 我在互联网上找不到正确的答案。
蓝牙基本速率/增强数据速率 (BR/EDR) 与 2.0 蓝牙核心规范一起出现,以提高数据速率传输。蓝牙低功耗 (BLE) 与 4.0 蓝牙核心规范一起出现,以改善物联网领域的功耗。然而,要使这两种模式协同工作(BLE 和 BR/EDR),您必须使用“Smart Ready”模块(或双模特定模块)。
今天,我们有了蓝牙 5。我不太明白,当我浏览市场上的蓝牙 5 SoC 时,BR/EDR 是否是原生实现的。对于 BLE 模式,它是。从一般常见问题解答:
蓝牙的低功耗特性是蓝牙 5.0 的一部分吗?
是的,蓝牙 4.0 中引入的具有低功耗功能的蓝牙是蓝牙核心规范 5.0 版中的一项功能。事实上,蓝牙 5.0 的新特性和优势是专门为具有低功耗功能的蓝牙设计的。
但是对于 BR/EDR 模式,蓝牙 5 核心规范规定(p323,卷:2 核心系统包 [BR/EDR 控制器卷]):
定义了两种调制模式。一种称为基本速率的强制模式使用形状 [...]。一种称为增强数据速率的可选模式使用 PSK 调制 [...]。
因此,从核心规范来看,EDR 模式是可选的。然而,我找不到任何具有这种 EDR 模式的 SoC 或模块(BT5 兼容),就像它不再存在一样,但每个人都表现出高数据传输(比以前版本的 EDR 多)。
那么,即使核心规范将 EDR 声明为可选,EDR 是否在 BT5 中本地实现(如 BLE 一样)?我哪里错了?
谢谢 !