void digitalClockDisplay(){
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
Serial.println();
}
void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
//I tried something like this
//void time(){
//char* hr = (char*)hour();
//Serial.println(hr);
//}
//But when I print it it gives a whole bunch of jibberish
以下是我正在使用的两个函数我正在尝试创建一个类似于digitalClockDisplay函数的函数,但是返回一个小时:分钟作为char *一旦我有,我希望能够比较到另一个char *
答案 0 :(得分:1)
hour()
似乎正在返回int
,所以
char* hr = (char*)hour();
Serial.println(hr);
将int
强制转换为指针,然后将该(无意义)地址的字节发送到Serial
。
您可能需要以下内容:
char hr[8];
snprintf(hr,8,"%i:%02i",hour(),minute());
Serial.println(hr);