虽然我已经在这里通过作弊码成功清除了所有液晶显示屏(因为它没有真正清除显示)for (int i=0; i < 80; i++)
,现在我需要删除单个字符在我的液晶显示器上。
注意:的 我正在使用lcd module进行串行通信。我密切搜索互联网,但我找不到任何解决方案,有没有人有想法这样做?
答案 0 :(得分:0)
HD44870命令集没有删除字符的规定。您需要在显示屏上读出所有以下字符,将它们写在适当的位置,然后再放一个或多个空格。
答案 1 :(得分:0)
在这里,我有一个使用键盘输入密码并将其显示在LCD上的示例:
bool enterPassword(char currentPassword[], byte lenghtMaxPassword)
{
byte nextChar = 0;
char changePassKeyPressed;
while(nextChar <= lenghtMaxPassword)
{
changePassKeyPressed = keyboard.getKey();
if(nextChar != lenghtMaxPassword)
{
if(!changePassKeyPressed)
{
continue;
}
else if(changePassKeyPressed=='#')
{
return false; // stop entering the password
}
else if(changePassKeyPressed=='*')
{
if(nextChar != 0) // Don't try delete char, which is not exists.
{
nextChar--;
lcd.setCursor(4 + nextChar,1);
lcd.print(" ");
lcd.setCursor(4 + nextChar,1);
}
}
else
{
lcd.print(changePassKeyPressed);
currentPassword[nextChar] = changePassKeyPressed;
nextChar++;
}
}
else
{
if(changePassKeyPressed == 'D')
{
break;
}
if(changePassKeyPressed == '#')
{
return false;
}
if(changePassKeyPressed == '*')
{
nextChar--;
}
}
}
return true;
}
删除您在此处的单个字符...
else if(changePassKeyPressed=='*')
{
if(nextChar != 0) // Don't try delete char, which is not exists.
{
nextChar--;
lcd.setCursor(4 + nextChar,1);
lcd.print(" ");
lcd.setCursor(4 + nextChar,1);
}
}
在液晶显示器 lcd。 blink() 中启用光标时,外观上看起来实际上是在删除字符,实际上您替换了最后一个字符带有空格的字符。