1

嗨,这是我的代码片段:

RIT128x96x4StringDraw(HWREGBITW(&g_ulFlags, 0) ? "1" : "0", 48, 32, 15);

这仅用于在屏幕上打印一些字符串。我想要一个函数或方法来打印可以递增的数字,就像我们在 c++ 中所做的那样

for(;;)
{ 
    cout<<i++;
}
4

1 回答 1

1

从您的另一个问题Arm Cortex Display中,我们看到了函数的原型。

void RIT128x96x4StringDraw(char *str, ulong x, ulong y, unsigned char level);

以下是参数,

  • x并且y是屏幕上的位置。它们是字符位置,因此此函数绘制文本,如 aprintf()cout
  • level参数是强度;我猜你有一个灰度 LCD,这就是文本的白色黑色。
  • str是您要打印的C 字符串。

这是一个以传统C模式打印数字的示例。

#include <stdio.h>
#include <stdlib.h>
void print_number(int i)
{
    char buffer[36];
    itoa (i,buffer,10);
    RIT128x96x4StringDraw(&buffer[0], 0, 0, 15);
}

这使用itoa()函数将数字转换为C 字符串。如果你更喜欢C++ 语法,下面的代码可能更可取,

void print_number(int i)
{
  std::ostringstream oss;
  oss << i++;
  /* What ever else you wish to do... */
  RIT128x96x4StringDraw(oss.str().c_str(), 0, 0, 15);
}

这段代码并不意味着是防弹生产代码,甚至可能无法编译。它是为了展示一个概念。

如果您的目标是资源受限的,这是一个实现。itoa()

于 2013-03-14T01:29:03.500 回答