Я искал на многих форумах, но не нашел ответа на свой вопрос:
Я пытаюсь понять программное обеспечение внутри моего 3D-принтера (прошивка Marlin), и я нашел этот код C ++:
#define LCD_STR_BEDTEMP "\x00"#define LCD_STR_DEGREE "\x01"#define LCD_STR_THERMOMETER "\x02"#define LCD_STR_UPLEVEL "\x03"#define LCD_STR_REFRESH "\x04"#define LCD_STR_FOLDER "\x05"#define LCD_STR_FEEDRATE "\x06"#define LCD_STR_CLOCK "\x07"#define LCD_STR_ARROW_RIGHT "\x7E" /* from the default character set */
lcd.createChar(LCD_STR_BEDTEMP[0], bedTemp);
lcd.createChar(LCD_STR_DEGREE[0], degree);
lcd.createChar(LCD_STR_THERMOMETER[0], thermometer);
lcd.createChar(LCD_STR_UPLEVEL[0], uplevel);
lcd.createChar(LCD_STR_REFRESH[0], refresh);
lcd.createChar(LCD_STR_FOLDER[0], folder);
lcd.createChar(LCD_STR_FEEDRATE[0], feedrate);
lcd.createChar(LCD_STR_CLOCK[0], clock);
lcd.createChar
команды Arduino, с которыми у меня нет проблем, но я не понимаю, почему все #define
строки заканчиваются [0]?
Спасибо за любую помощь.
Все ваши макросы производят строковые литералы, которые всегда заканчиваются на \ 0. Пожалуйста, покажите подпись lcd.createChar
функция. Возможно, будет более понятно, в чем проблема.
Других решений пока нет …