【问题标题】:Convert int to string to display on lcd, atmel studio c language将int转换为字符串显示在lcd上,atmel studio c语言
【发布时间】:2019-08-03 09:03:41
【问题描述】:

我在 atmel 工作室为我的 avr atmega 32 ic 编写了一个程序。通过键盘输入 0 到 999 之间的数字。我想在液晶显示器上显示。 我的问题是:lcd 只接受 char 和 string.i 将输入的数字存储在 int 变量中。如何将其转换为字符串或字符。 我写了这个函数; Y 是通过 int 的键盘输入的数字:

char str;
itoa(y,str,10);
alcd_putc(str);

但它不起作用。帮帮我谢谢。

【问题讨论】:

  • 如果可用,您可以使用sprintf() 代替itoa()。
  • str不应该是像str[10]这样的数组吗?
  • 亲爱的achal 谢谢,你能解释更多吗? Sprintf(str,y)????
  • 你能用我上面写的变量和引用写出你的答案吗?
  • Sprint(str,”%d”,y); lcd_puts(y);对吗?

标签: c avr atmega atmel atmelstudio


【解决方案1】:

使用alcd_puts 函数如下:

char str[5]; //< Use a array of char
itoa(y,str,10);
alcd_puts(str); 

【讨论】:

  • 谢谢亲爱的。但是为什么 str[5] 不是 str[8]。什么是差异?我在它在 atmel 工作室不起作用之前就这样做了,有人告诉我 atmel 没有找到这个功能作为标准功能。所以告诉我使用 sprintf() 但它也不起作用。
  • @Aashkanpasha 它应该是y 中的最大位数加上一个额外的空字符。您也可以使用str[8],但由于您正在进行嵌入式编程,因此可能会存在内存限制,即使在少数情况下。
  • 谢谢。关于这一点,atmel 不知道这个 itoa 作为标准功能,我不能在 atmel 中使用它。你能用 sprintf 给我答案吗???
  • @Aashkanpasha char str[5]; snprintf(str, 5, "%d", y);
  • 谢谢亲爱的。有效。但我发现我的问题是另一个地方。我通过扫描键盘获取数字并将它们存储在数组名称 l[i] 中。数组有 3 个元素,例如 {1,2,6} 或一个元素 {1} 或两个元素 {5,3}。 aray 的长度在 1 到 3 个数字之间,我们只能通过键盘输入 1000 以下的数字。我无法使 int y=l[0]l[1]l[2] 示例 y=126。我该怎么做。然后到达 itoa。
猜你喜欢
  • 2016-01-26
  • 2021-04-16
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
相关资源
最近更新 更多