ошибка: неверное преобразование из ‘char *’ в ‘uint32_t

Я пытаюсь вручную настроить часы 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);

-7

Решение

setDateTime() принимает intв качестве параметров, но вы даете это char массив.

Звонок должен быть:

clock.setDataTime(2017, 3, 22, 16, 20, 4);
1

Другие решения

setDateTime() принимает дату как последовательность целых чисел:

setDateTime(year, month, day, hours, minutes, seconds);

Бонус: согласно man strcat:

char *strcat(char *dest, const char *src);

Описание

strcat() функция добавляет ЦСИ строка в Dest строка, …

Так как вы используете это так:

char dateTime[20];
strcat(dateTime, "2017,03,22,16,20,04");

ты добавляешь "2017,03,22,16,20,04" в унифицированную память, которая является неопределенное поведение.

2

По вопросам рекламы [email protected]