您好我使用带有adafruit盾牌的Arduino UNO来显示分数值,但用于显示分数的功能仅接受char *值,分数本身最多可占用6位数(000,000到999,999)。我曾尝试使用sprint(),但我没有运气,因为屏幕会像疯了一样闪烁。我认为问题是字符只能保存一定数量的字节,不能容纳32位int但我认为它们是一种方法。绘制文本是屏蔽在屏幕上绘制的函数,输入为char *,颜色代码,大小,x像素,y像素。如果有人可以帮我转换这两种类型,请告诉我。如果他们的替代品也会帮助我。
我的代码:
char* textToWrite;
uint32_t currentScore = 0;
uint32_t highScore = 0;
highScore = currentScore;
sprintf(textToWrite,"%d.%d.%d.%d\0", currentScore);//sprint f not working properly right now
drawText(textToWrite, ST7735_WHITE, 1, 100, 10);
我也尝试过使用:
sprintf(textToWrite,"%u", currentScore);
答案 0 :(得分:7)
char textToWrite[ 16 ];
uint32_t currentScore = 42;
// as per comment from LS_dev, platform is int 16bits
sprintf(textToWrite,"%lu", currentScore);