找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1879|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
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,實(shí)際只有前四個(gè)是對(duì)的,只能使用四個(gè)變量。請(qǐng)大家看看問題出在什么地方?

屏幕截圖.png (6.67 KB, 下載次數(shù): 48)

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

本來應(yīng)該顯示123456
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-3-14 00:28 | 只看該作者
單片機(jī)那點(diǎn)兒內(nèi)存根本實(shí)現(xiàn)不了完整的sprintf函數(shù),都是刪減版本的,能自己寫就不要用標(biāo)準(zhǔn)庫(kù)函數(shù)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:69038 發(fā)表于 2023-3-14 09:33 | 只看該作者
如同豪華超跑的sprintf,是一般人駕駑不了的,太燒油。功能強(qiáng)大,但小身板的單片機(jī)最好別用它。
你看一下把它注釋掉,前后編譯對(duì)比一下花費(fèi)的空間,就能發(fā)現(xiàn)問題了。
回復(fù)

使用道具 舉報(bào)

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

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表