
MCU型号是STM32H7B0VBT6。我们的产品使用了MCU的RTC功能,采用外置 32.768K 6PF晶振,匹配的电容为6PF,并配置了纽扣电池用于掉电计时。在使用过程中,我们遇到了如下几个问题: 1类、产品正常上电,程序开启RTC时钟和寄存器写使能,但无法正常写入RTC寄存器, 导致程序卡死在RTC初始化函数里,产品掉电或者去掉电池皆不起作用。 2类、产品正常上电无法启动,如果焊接下芯片的RTC晶振管脚或者拔掉RTC的纽扣电池, 才可以正常启动,此后不会再出现卡死现象。 在此想咨询下,有后备电池时,怎样初始化时钟?是否需要检测下后备电池?这种问题 有什么解决方案。 以上问题出现概率约为2%,对我们产品生产和销售造成了很大影响。 其他客户是否遇到过此类问题,帮忙协助解决该问题。 在此表示感谢! 附: 下面是我们当前RTC初始化相关函数 //系统时钟初始化函数,使用LSE和HSI static void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /* Supply configuration update enable / HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY); /* Configure the main internal regulator output voltage / __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0); while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {} /* Configure LSE Drive Capability / HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Initializes the RCC Oscillators according to the specified parameters
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) { Error_Handler(); } } //RTC初始化函数 // // 功 能: RTC初始化 // 输 入: 无 // 返 回: 无 // void Rtc_Init(void) { RTC_TimeTypeDef sTime = {0}; RTC_DateTypeDef sDate = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); __HAL_RCC_RTC_ENABLE(); hrtc.Instance = RTC; hrtc.Init.HourFormat = RTC_HOURFORMAT_24; hrtc.Init.AsynchPrediv = 127; hrtc.Init.SynchPrediv = 255; hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE; HAL_RTC_Init(&hrtc); if( HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) != 0x5051 ) { /* Initialize RTC and set the Time and Date / sTime.Hours = 0x0; sTime.Minutes = 0x0; sTime.Seconds = 0x0; sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; sTime.StoreOperation = RTC_STOREOPERATION_RESET; HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN); sDate.WeekDay = RTC_WEEKDAY_SATURDAY; sDate.Month = RTC_MONTH_JANUARY; sDate.Date = 0x1; sDate.Year = 0x00; HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN); HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR1, 0X5051); } } |
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H750使用FMC
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
我想实现三对移相PWM(占空比为50%)输出,前两对是互补输出,用了TIM1的CH1/CH1N和CH2/CH2N。第三对用了TIM1的CH3和TIM8的CH2,类似于互补输出。需要以TIM1的CH1/CH1N为参考,其余两对怎样实现占空比不变,相移可调呢?另外TIM8的CH1和CH3的PWM需要输出高电平
STM32H723 TIM1输出三相50%的占空比,TIM_CH3的输出上升沿略比TIM_CH1和TIM_CH2超前,这是哪里配置有问题吗
stm32h7 用pb3、pb4、pb5、pa15做spi3后,mx组态时debug里选择serial wire,程序里加了禁用jtag,spi3口不能工作
MCSDK不能启动电机?
STM32H745启动与烧录问题
stm32H7 LTDC控制器 CLUT模式寄存器配置
STM32H750B-DK 板载STLINK 无程序
感觉你的RTC相关初始化代码可能有问题。具体要看你的实现代码,最好是现场调试。