繁体   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