mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-20 22:45:44 +08:00
send CR+LF (command terminator) first at refreshDisplay()
Sometimes BOXF (box fill) command at refreshDisplay() fails. Normally this is not occured, but running MMDVMHost for long time (about one day) we see this problem. The reason is unknown. But if LCD panel receives garbage character between calling refreshDisplay(), first command (BOXF) at latter-called refresDdisplay() will fail. For workaround, send CR+LF command terminator first at this function.
This commit is contained in:
@@ -63,7 +63,7 @@ enum LcdColour {
|
||||
#define MODE_CHARS (X_WIDTH / (MODE_FONT_SIZE / 2))
|
||||
#define STATUS_CHARS (X_WIDTH / (STATUS_FONT_SIZE / 2))
|
||||
#define STATUS_LINES ((Y_WIDTH - STATUS_MARGIN) / STATUS_FONT_SIZE)
|
||||
#define statusLine_offset(x) ((STATUS_CHARS + 1) * ((x) + 1))
|
||||
#define statusLine_offset(x) ((STATUS_CHARS + 1) * ((x) + 1))
|
||||
|
||||
// This module sometimes ignores display command (too busy?),
|
||||
// so supress display refresh
|
||||
@@ -374,6 +374,10 @@ void CTFTSurenoo::refreshDisplay(void)
|
||||
{
|
||||
if (!m_refresh) return;
|
||||
|
||||
// send CR+LF to avoid first command is not processed
|
||||
::snprintf(m_temp, sizeof(m_temp), STR_CRLF);
|
||||
m_serial->write((unsigned char*)m_temp, (unsigned int)::strlen(m_temp));
|
||||
|
||||
// clear display
|
||||
::snprintf(m_temp, sizeof(m_temp), "BOXF(%d,%d,%d,%d,%d);",
|
||||
0, 0, X_WIDTH - 1, Y_WIDTH - 1, BG_COLOUR);
|
||||
|
||||
Reference in New Issue
Block a user