找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 792|回复: 3
收起左侧

单片机C语言sprintf()函数驱动LCD1602显示屏显示问题

[复制链接]
ID:366877 发表于 2023-3-13 14:47 | 显示全部楼层 |阅读模式
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,实际只有前四个是对的,只能使用四个变量。请大家看看问题出在什么地方?

本来应该显示123456

本来应该显示123456
回复

使用道具 举报

ID:883242 发表于 2023-3-14 00:28 | 显示全部楼层
单片机那点儿内存根本实现不了完整的sprintf函数,都是删减版本的,能自己写就不要用标准库函数。
回复

使用道具 举报

ID:69038 发表于 2023-3-14 09:33 | 显示全部楼层
如同豪华超跑的sprintf,是一般人驾驽不了的,太烧油。功能强大,但小身板的单片机最好别用它。
你看一下把它注释掉,前后编译对比一下花费的空间,就能发现问题了。
回复

使用道具 举报

ID:401564 发表于 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]);                                //这个是我自己写的串口发送函数
                }

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表