|
|
买了块lcd12864的屏幕,想要在屏幕上显示一个int型变量的值,但是将int型变量转换为char*型后,使用函数 u8g_uint_t U8GLIB::drawStr(u8g_uint_t x, u8g_uint_t y, const char *s),显示结果仍然不正确。。显示的是乱码。。想请教下大家有没有试过用u8glib库里面的函数显示int型变量的值?
代码如下:
#include <U8glib.h>
U8GLIB_ST7920_128X64_4X u8g(3, 9, 8);
int num=0;
int score=0;
int topScore=23454;
char s[10]={0};
void setup(void) {
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
void loop()
{
//LCDA.CLEAR();
u8g.firstPage();
do {
u8g.setFont(u8g_font_6x10);
u8g.setFontRefHeightExtendedText();
u8g.setDefaultForegroundColor();
u8g.setFontPosTop();
u8g.drawLine(95,0,95,63);
u8g.drawStr( 98, 0, "Score:");
itostr(score,s);
drawUI();
} while( u8g.nextPage() );
delay(1000);
}
void drawUI(void)
{
u8g.drawStr( 108, 8 , s);
}
void itostr(int a,char *b)
{
int len = 0;
int temp = a;
while (temp)
{
temp = temp / 10;
len++;
}
for (int i = len - 1; i >= 0; i--)
{
b[i] = a % 10+'0';
a = a / 10;
}
b[len] = '\0';
} |
|