VL53L5CX无法使用
为何cubemx2只支持最新的c5系列
今天的主题是STM32CubeMX2
STM32CubeMX2尝鲜
【速览】CubeMX2发布了,目前支持C5系列,支持MDK6
最新的STM32CubeMX v6.17.0版本有bug,大家注意哈!
请问一下为什么cubemx配置正确,但是生成的文件无法调用HAL_UARTEx_ReceiveToIdle_DMA()函数?
关于STM32CUBEMX片内外设图形化设置的建议
stm32g474RE 输出4相波形,如何精准输出ADC触发的问题。
使用单片机的USB PD功能时,初始化一直出错。
微信公众号
手机版
我看了下基于LL库的代码,根据它的设置的分频值,最终初始化得到TR_CLK不是秒时钟,这会导致问题或误会。
应该说,LL库这个地方有点问题。一般来讲,我们通常设置分频值后得到TR_CLK应该是1s,看来你这里手动配置是必要的。
看着是一个负值
没有关系的。
这个值只是个标志,后续的初始化配置里根据该值进一步得到最终的异步分频值。
没有问题的,放心。
忘记说明了,我生成的是LL库代码。这是生成的源码
不知道评论是不是被吞了,这么久没发出来。我用的是LL库,这是源码
void MX_RTC_Init(void)
{
/* USER CODE BEGIN RTC_Init 0 */
/* USER CODE END RTC_Init 0 */
LL_RTC_InitTypeDef RTC_InitStruct = { 0 };
LL_RTC_TimeTypeDef RTC_TimeStruct = { 0 };
LL_PWR_EnableBkUpAccess();
/* Enable BKP CLK enable for backup registers */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_BKP);
/* Peripheral clock enable */
LL_RCC_EnableRTC();
/* USER CODE BEGIN RTC_Init 1 */
/* USER CODE END RTC_Init 1 */
/** Initialize RTC and set the Time and Date
*/
RTC_InitStruct.AsynchPrescaler = 0xFFFFFFFFU;
LL_RTC_Init(RTC, &RTC_InitStruct);
LL_RTC_SetAsynchPrescaler(RTC, 0xFFFFFFFFU);
/** Initialize RTC and set the Time and Date
*/
RTC_TimeStruct.Hours = 0;
RTC_TimeStruct.Minutes = 0;
RTC_TimeStruct.Seconds = 0;
LL_RTC_TIME_Init(RTC, LL_RTC_FORMAT_BCD, &RTC_TimeStruct);
/* USER CODE BEGIN RTC_Init 2 */
/* USER CODE END RTC_Init 2 */
}
void SystemClock_Config(void)
{
LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
while (LL_FLASH_GetLatency() != LL_FLASH_LATENCY_2)
{
}
LL_RCC_HSE_Enable();
/* Wait till HSE is ready */
while (LL_RCC_HSE_IsReady() != 1)
{
}
LL_PWR_EnableBkUpAccess();
if (LL_RCC_GetRTCClockSource() != LL_RCC_RTC_CLKSOURCE_LSE)
{
LL_RCC_ForceBackupDomainReset();
LL_RCC_ReleaseBackupDomainReset();
}
LL_RCC_LSE_Enable();
/* Wait till LSE is ready */
while (LL_RCC_LSE_IsReady() != 1)
{
}
if (LL_RCC_GetRTCClockSource() != LL_RCC_RTC_CLKSOURCE_LSE)
{
LL_RCC_SetRTCClockSource(LL_RCC_RTC_CLKSOURCE_LSE);
}
LL_RCC_EnableRTC();
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
LL_RCC_PLL_Enable();
/* Wait till PLL is ready */
while (LL_RCC_PLL_IsReady() != 1)
{
}
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
/* Wait till System clock is ready */
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
{
}
LL_Init1msTick(72000000);
LL_SetSystemCoreClock(72000000);
}
实际上RTC时钟走时也不对,手动修改分频值就能正常走时