找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1827|回復: 3
收起左側(cè)

單片機C語言sprintf()函數(shù)驅(qū)動LCD1602顯示屏顯示問題

[復制鏈接]
ID:366877 發(fā)表于 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)
        {
                ;
        }
}
本來應(yīng)該顯示123456,實際只有前四個是對的,只能使用四個變量。請大家看看問題出在什么地方?

本來應(yīng)該顯示123456

本來應(yīng)該顯示123456
回復

使用道具 舉報

ID:883242 發(fā)表于 2023-3-14 00:28 | 顯示全部樓層
單片機那點兒內(nèi)存根本實現(xiàn)不了完整的sprintf函數(shù),都是刪減版本的,能自己寫就不要用標準庫函數(shù)。
回復

使用道具 舉報

ID:69038 發(fā)表于 2023-3-14 09:33 | 顯示全部樓層
如同豪華超跑的sprintf,是一般人駕駑不了的,太燒油。功能強大,但小身板的單片機最好別用它。
你看一下把它注釋掉,前后編譯對比一下花費的空間,就能發(fā)現(xiàn)問題了。
回復

使用道具 舉報

ID:401564 發(fā)表于 2023-3-17 20:02 | 顯示全部樓層
參考代碼
char   k[10];                                                         //這里不能加code限定符,否則計算不正確,數(shù)組長度隨意,不出錯就可以
        char a;
        sprintf(k,"%.1f",Data_Send);                        //把浮點數(shù)據(jù)分割成字符串,并存放在k數(shù)組中,"%.1f"的2f表示小數(shù)點后再顯示1位數(shù),不顯示小數(shù)就是0f        for(a=0;(k[a]!='\0');a++)
                {
                        Send_Out_COM(k[a]);                                //這個是我自己寫的串口發(fā)送函數(shù)
                }

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表