如何将uint32_t转换为char *类型

时间:2013-11-26 16:19:23

标签: c++ c char arduino uint32-t

您好我使用带有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);

1 个答案:

答案 0 :(得分:7)

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