вернуть структуру из функции в main.c? - PullRequest
1 голос
/ 07 октября 2019

Здравствуйте, мне нужно RTC_TimeStruct и RTC_DateStruct из этой функции из файла hw_rtc.c, потому что у них есть данные времени, такие как секунда и минутаили день. Эта функция возвращает тики, но я не могу преобразовать ее во время и данные. Итак, я решил получить эту структуру в свой основной файл и время чтения.

 * @brief Get the RTC timer value
 * @param none
 * @retval RTC Timer value in ticks
 */
uint32_t HW_RTC_GetTimerValue( void )
{
  RTC_TimeTypeDef RTC_TimeStruct;
  RTC_DateTypeDef RTC_DateStruct;

  uint32_t CalendarValue = (uint32_t) HW_RTC_GetCalendarValue(&RTC_DateStruct, &RTC_TimeStruct );

  return (CalendarValue);

}

В своем основном файле я пробовал что-то подобное, но, к сожалению, не получилось.

void rxDoneEventCallback(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)
{
    //BSP_LED_On(LED2);

    TimerStart(&ledTimer);
    RTC_TimeTypeDef *tStruct = {0};
    tStruct = HW_RTC_GetTimerValue();

        if( (payload[0] + (payload[1]<<8)) > 4095 )  
            {

            garbageRxDataCount++ ;          
            }
        else
            {
                vcom_Send("Second: %d Minute: %d Data: %d"  ,tStruct->Seconds, tStruct->Minutes, payload[0] +  (payload[1]<<8));
                PRINTF("\n");
            }
}

1 Ответ

1 голос
/ 07 октября 2019

Все, что вам нужно сделать, это позвонить HW_RTC_GetCalendarValue() напрямую.

HW_RTC_GetTimerValue() вызывает HW_RTC_GetCalendarValue() и отбрасывает структурированные данные.

  RTC_TimeTypeDef time ;
  RTC_DateTypeDef date ;

  HW_RTC_GetCalendarValue( &date , &time ) ;

RTC_DateStruct и RTC_TimeStruct будут заполнены данными даты и времени на HW_RTC_GetCalendarValue().

...