簡體   English   中英

將結構從 function 返回到 main.c?

[英]return a struct from a function to main.c?

您好,我需要來自 hw_rtc.c 文件的 function 的RTC_TimeStructRTC_DateStruct ,因為它們具有秒、分或天等時間數據。 這個 function 返回滴答聲,但我無法將其轉換為時間和數據。 所以,我決定把這個結構放到我的主文件中並讀取時間。

 * @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");
            }
}

您需要做的就是直接調用HW_RTC_GetCalendarValue()

HW_RTC_GetTimerValue()正在調用HW_RTC_GetCalendarValue()並丟棄結構化數據。

  RTC_TimeTypeDef time ;
  RTC_DateTypeDef date ;

  HW_RTC_GetCalendarValue( &date , &time ) ;

RTC_DateStructRTC_TimeStruct將通過HW_RTC_GetCalendarValue()填充日期和時間數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM