将int转换为字符串显示在lcd上,atmel studio c语言

Posted

技术标签:

【中文标题】将int转换为字符串显示在lcd上,atmel studio c语言【英文标题】:Convert int to string to display on lcd, atmel studio c language 【发布时间】: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);对吗? 【参考方案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。

以上是关于将int转换为字符串显示在lcd上,atmel studio c语言的主要内容,如果未能解决你的问题,请参考以下文章

51单片机编程sprintf怎么用?

用arduino 制作温湿度计,利用LCD显示屏将温湿度显示在LCD显示屏上

在LCD显示摄像头图像

V4L2采集图像并在LCD上显示的图像格式问题

MSSQL中 float转换为varchar 变成科学计数法解决方案

将 varchar 转换为数字并仅显示数值时转换失败