您好,我正在使用带有 adafruit 盾牌的 Arduino UNO 来显示分数值,但用于显示分数的函数只接受 char* 值,分数本身最多可以占用 6 位数字(000,000 到 999,999)。我曾尝试使用 sprint() 但我没有运气,因为屏幕会像疯了一样闪烁。我认为问题在于字符只能容纳一定数量的字节,不能容纳 32 位 int,但我认为它们是一种解决方法。 draw text 是 shield 用来在屏幕上绘制的函数,输入是 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);

最佳答案

char textToWrite[ 16 ];
uint32_t currentScore = 42;
// as per comment from LS_dev, platform is int 16bits
sprintf(textToWrite,"%lu", currentScore);

10-05 21:31