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

QQ登錄

只需一步,快速開始

搜索

keil的sprintf咋用啊,我想把數(shù)字轉(zhuǎn)成字符串,查了半天資料,改來改去的還是報(bào)錯(cuò)

查看數(shù): 3356 | 評(píng)論數(shù): 6 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2021-11-15 17:30

正文摘要:

請(qǐng)大神解答一下,邁過這個(gè)坎就有希望了。

回復(fù)

ID:739720 發(fā)表于 2021-11-22 21:29
對(duì)不起我錯(cuò)了,學(xué)了這么久C語言還真沒注意到不能在函數(shù)外部調(diào)用函數(shù)
ID:592807 發(fā)表于 2021-11-16 09:40
你的sprintf函數(shù)在函數(shù)外部給誰用的?

51hei截圖20211116093931.png (168.67 KB, 下載次數(shù): 57)

51hei截圖20211116093931.png
ID:592807 發(fā)表于 2021-11-16 09:38
你在函數(shù)外面使用sprintf()?先看看你的SPRINTF
ID:584195 發(fā)表于 2021-11-16 07:44
warning:  #167-D:argument of type "uint8_t *" is incompatible with parameter of ty
pe "const char *restrict"
解釋: uint8_t * 類型的參數(shù)與 const char * restrict 類型的參數(shù)不兼容。 參數(shù)傳遞時(shí), 不同
類型的警告。
影響:可能提高代碼的 bug 率。
改正:首先避免這樣做,其次如果避不開要詳細(xì)檢查傳入的參數(shù)。
你前面是int 后面是char 看不能強(qiáng)制轉(zhuǎn)換一下。
ID:883242 發(fā)表于 2021-11-15 21:27
這根本就不是sprintf的問題,而是c語言基本語法的問題。
ID:401564 發(fā)表于 2021-11-15 20:36
這是我已經(jīng)驗(yàn)證過的,參考一下
void Send_TextAndData(char *txt,float Data_Send)        //發(fā)送文本+數(shù)據(jù)
{
        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]);                                //發(fā)送
                }
}

Data_Send是浮點(diǎn)整型通用的,用浮點(diǎn)是方便要顯示小數(shù)點(diǎn)的會(huì)自動(dòng)輸出負(fù)號(hào)和小數(shù)點(diǎn)

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

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

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