![](/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.