尽量简明扼要;我正在尝试对 LCD 进行编程以打印出一个整数变量(超过 1 位)。我正在尝试使用 itoa 函数来执行此操作,因为 LCD 需要 ASCII 字符。下面的代码在我想要的时候编译并打印“Set Temp:”,问题是它没有像我想要的那样打印出存储在 numberString 数组中的字符(数字)。writeString 函数工作正常,但我不知道为什么它只是在“Set Temp:”之后不打印 int setTemp 的值。输出的只是:“设置温度:”,光标刚刚挂起。
可能值得一提的是,光标挂在 LCD 上应该打印值的位置,表明它不只是打印一个空值,它根本不打印任何东西或等待什么东西。
对任何不正确的问题格式表示歉意,我是新手。
void writeChar(unsigned char ch)
{
lcd = ch;
RS = 1;
RW =0;
E = 1;
lcdDelay();
E=0;
}
void writeString(char *stringToLcd)
{
while(*stringToLcd > 0)
{
writeChar(*stringToLcd++);
}
}
int changeTriggTemp(void)
{
char numberString[4]; //buffer, -99 -> 99
int setTemp = 50;
clearDisplay();
writeString("Set Temp: ");
itoa(setTemp,numberString,10);
lcdDelay();
writeString(numberString);
while(1); //placeholder before I return the int I want
}