将结构从函数返回到main.c?

问题描述 投票:0回答:1

你好,我需要hw_rtc.c文件中的此函数的RTC_TimeStruct,因为它们具有诸如秒,分钟或天之类的时间数据。此函数返回刻度,但我无法将其转换为时间和数据。因此,我决定将此结构保存到主文件中并读取时间。

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

c function struct embedded stm32
1个回答
0
投票
您需要做的就是直接致电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()填充日期和时间数据。
© www.soinside.com 2019 - 2024. All rights reserved.