标题:
单片机C语言sprintf()函数驱动LCD1602显示屏显示问题
[打印本页]
作者:
wdgao
时间:
2023-3-13 14:47
标题:
单片机C语言sprintf()函数驱动LCD1602显示屏显示问题
char table[16];
int a=1;
int b=2;
int c=3;
int d=4;
int e=5;
int f=6;
void main()
{
LCD_Init();
sprintf(table,"%d%d%d%d%d%d",a,b,c,d,e,f);
LCD_ShowString(1,1,table);
while(1)
{
;
}
}
本来应该显示123456,实际只有前四个是对的,只能使用四个变量。请大家看看问题出在什么地方?
屏幕截图.png
(6.67 KB, 下载次数: 48)
下载附件
2023-3-13 14:45 上传
本来应该显示123456
作者:
Hephaestus
时间:
2023-3-14 00:28
单片机那点儿内存根本实现不了完整的sprintf函数,都是删减版本的,能自己写就不要用标准库函数。
作者:
zhuls
时间:
2023-3-14 09:33
如同豪华超跑的sprintf,是一般人驾驽不了的,太烧油。功能强大,但小身板的单片机最好别用它。
你看一下把它注释掉,前后编译对比一下花费的空间,就能发现问题了。
作者:
Y_G_G
时间:
2023-3-17 20:02
参考代码
char k[10]; //这里不能加code限定符,否则计算不正确,数组长度随意,不出错就可以
char a;
sprintf(k,"%.1f",Data_Send); //把浮点数据分割成字符串,并存放在k数组中,"%.1f"的2f表示小数点后再显示1位数,不显示小数就是0f for(a=0;(k[a]!='\0');a++)
{
Send_Out_COM(k[a]); //这个是我自己写的串口发送函数
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1