Stm32RTC不走动的问题解答

STM32 电子创客营 7970次浏览 已收录 2个评论 扫描二维码

 

By Derrick Wang

STM32 RTC不走的总结:

  有客户要用到RTC,在帮忙配置的过程中,发现RTC运行不起来,不管是用LSI还是LSE都不行。以下列举我使用NUCLEO-F411的板子为例的测试过程。

cubemx配置:

  全部使用内部时钟,RTC时钟源LSI 32khz。RTC打开日历功能。

Stm32RTC不走动的问题解答

配置RTC的时钟源为内部32khz。

Stm32RTC不走动的问题解答

  RTC的配置我修改了以下两个地方124分频,为了获得1hz的时钟基准,32khz/(125*256)=1hz。数据格式改为2进制。

Stm32RTC不走动的问题解答

  另外就是开了一个串口了,用来打印rtc读取值。生成mdk工程。

  主函数就很简单,如下所示(printf接口我添加好了):

int main(void)
{

    /* USER CODE BEGIN 1 */
    RTC_TimeTypeDef rtcTime;
    RTC_DateTypeDef rtcDate;
    /* USER CODE END 1 */
    /* MCU Configuration----------------------------------------------------------*/
    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();
    /* Configure the system clock */
    SystemClock_Config();
    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_USART2_UART_Init();
    MX_RTC_Init();
    /* USER CODE BEGIN 2 */
    /* USER CODE END 2 */
    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
   while (1)
   {
        /* USER CODE END WHILE */
        /* USER CODE BEGIN 3 */
        HAL_RTC_GetTime(&hrtc,&rtcTime,RTC_FORMAT_BIN);
        printf("---%d-%d-%d------\r\n",rtcTime.Hours,rtcTime.Minutes,rtcTime.Seconds);
        HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
        HAL_Delay(1000);
    }
    /* USER CODE END 3 */
}

  打印出来的值如下所示:

Stm32RTC不走动的问题解答

  可以看到时分秒都是0,也就是RTC没有走动。

测试stm32L433ccu6   stm32L433vct6 stm32F411ret6  都存在这样的现象。

注意这种现象在使用stm32f103c8t6测试的时候不会存在。

后经邵工指点,总算找到原因,实际上也就缺少一条语句:

while (1)
{
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
    HAL_RTC_GetTime(&hrtc,&rtcTime,RTC_FORMAT_BIN);
    HAL_RTC_GetDate(&hrtc, &rtcDate, RTC_FORMAT_BIN);
    printf("---%d-%d-%d------\r\n",rtcTime.Hours,rtcTime.Minutes,rtcTime.Seconds);
    HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
    HAL_Delay(1000);
}
/* USER CODE END 3 */

  根据邵工的解释,是不读DATE的话,日历值会被锁住。加上HAL_RTC_GetDate这一句就ok了。

  stm32型号很多,不是所有型号都有这种现象,如调试过程中发现不走动看是不是也是这种问题。

 


转载请注明转自电子创客营:Stm32RTC不走动的问题解答! 了解我们点击这里

微信扫一扫关注我们的公众号:eemaker

Stm32RTC不走动的问题解答


喜欢 (11)or分享 (0)
电子创客营
关于作者:

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 妈呀感谢!!!!!!!!找了半天了,还有这种规定!!!
    好风2018-11-16 16:43 Windows 7 | Chrome 63.0.3239.132
  2. 更加详细的解释看这里http://mp.weixin.qq.com/s/b8WwXqD5LYThi7HSTXGzTQ
    电子创客营2016-12-09 18:11 Android 5.1 | Chrome 37.0.0.0