熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
對(duì)不起我錯(cuò)了,學(xué)了這么久C語言還真沒注意到不能在函數(shù)外部調(diào)用函數(shù)![]() |
你的sprintf函數(shù)在函數(shù)外部給誰用的? |
51hei截圖20211116093931.png (168.67 KB, 下載次數(shù): 57)
你在函數(shù)外面使用sprintf()?先看看你的SPRINTF |
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)換一下。 |
這根本就不是sprintf的問題,而是c語言基本語法的問題。 |
這是我已經(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) |
Powered by 單片機(jī)教程網(wǎng)