![](/img/trans.png)
[英]How do I pass a pointer to a struct from a library function back into my main.c program?
[英]return a struct from a function to main.c?
您好,我需要來自 hw_rtc.c 文件的 function 的RTC_TimeStruct和RTC_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_DateStruct
和RTC_TimeStruct
將通過HW_RTC_GetCalendarValue()
填充日期和時間數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.