【发布时间】:2017-08-14 19:39:50
【问题描述】:
我正在尝试手动设置 RTC 时钟。 自动完成时,这是工作代码:
clock.setDateTime((__DATE__, __TIME__));
但现在我想手动设置它,这就是我正在尝试的:
char dateTime[20];
strcat(dateTime, "2017,03,22,16,20,04");
//clock.setDateTime((__DATE__, __TIME__));
clock.setDateTime(dateTime);
我收到以下错误(在最后一行):
error: invalid conversion from 'char*' to 'uint32_t {aka long unsigned int}' [-fpermissive]
如何解决?
编辑: 这就是 setDateTime 的定义方式:
void setDateTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second);
【问题讨论】:
-
setDateTime是如何定义的? -
好的。因此,您需要将字符串拆分为与
setDateTime的定义方式相匹配的参数。 -
您正在将一个字符串 (
char *) 提供给一个需要整数参数的函数......这是一个无效的转换(正如编译器告诉你的那样)。你期待什么? -
另外,我猜
setDateTime()有多个声明,因为 1) 您向我们展示的那个也不应该与(__DATE__, __TIME__)一起使用,以及 2) 您展示的那个我们并不期待uint32_t,这是编译器抱怨的。 -
如果你可以打电话给
clock.setDateTime(2017,3,22,16,20,4),为什么还要搞乱字符串?
标签: c++ arduino char invalid-characters uint