我正在尝试使用STM32L051T6
时间在epoch
微控制器上设置RTC时间。以下是我的代码。
void Rtc_SetTime(uint32_t time_)
{
struct tm* brokenTime;
const time_t temp = 3600;
brokenTime = gmtime(&temp);
if (NULL == brokenTime)
{
printf("Error: Failed to convert time.\r\n");
}
}
当我调用上面的功能时。它总是转到if
语句并打印错误。我已经尝试将值3600,1459841178作为参数传递。都失败了。代码有什么问题?
答案 0 :(得分:1)
我在这里找到了以下内容: http://support.raisonance.com/content/gmtime-and-localtime-broken-arm-gcc-lib
所以它可能没有实现....
我认为STM32F10x的arm-gcc lib中的gmtime和localtime已被破坏。
我在keil uVision尝试过并在那里工作得很好(无论如何,当地时间, gmtime没有在keil中实现)。 gmtime和localtime正在搜索 链接时_sbrk。
" sbrkr.c :(。text + 0xc):未定义引用`_sbrk'"
答案 1 :(得分:0)
我使用了localtime()函数而不是gmtime(),它很好地解决了我的目的。