![]() |
發(fā)布時間: 2024-8-9 20:53
正文摘要:這兩天調(diào)試一個函數(shù),總是不能達成控制目的而編譯結(jié)果為無錯誤、無警告,最后發(fā)現(xiàn)是變量帶參運算不正常搞得一頭霧水,以前沒碰到這種情況誠請高手指點一下,先謝了!(單片機為STC8H8K64U,編譯環(huán)境為keil uv3或keil u ... |
因為我玩電子價簽?zāi)習(xí)r能夠找到的例程都是arduino-esp8266的和stm32的而我比較容易上手的就是esp8266模塊,幾乎都是用arduino代碼實現(xiàn)了刷屏操作后就移植初始化代碼到stc51單片機中再深入玩耍,碰到了眼下的問題后,今天我再次連接了esp8266模塊并將這兩個函數(shù)貼到了arduino上編譯燒錄后發(fā)現(xiàn)顯示非常順利毫無問題,以前我也經(jīng)常在arduino上寫一些簡單的c函數(shù),有時也復(fù)制arduino上的c函數(shù)到keil3中編譯應(yīng)用,也重來沒出現(xiàn)過問題,而此次是經(jīng)過反向驗證應(yīng)該說明函數(shù)真的沒毛病了,那么,問題在哪里呢?我也重新安裝了keil3軟件,這是玩了很多年51單片機第一次遇到的久拖不決的問題,真的百思不得其解。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎勵! |
xrba 發(fā)表于 2024-8-12 10:28 多謝,我今天又弄了好久仍然沒找到原因,問題應(yīng)該不是出在size這個變量,在我的測試中hi=64是固定值,我將size置換成256仍然無果,另外程序調(diào)試過程中也能看到這個變量的運算結(jié)果為0x100(=256)。 |
還真沒有發(fā)現(xiàn)問題在哪兒,最可能的原因是 size 值不對。 1、可否跟蹤一下,查查size,或者打印一個日志。 2、size = hi * hi / 16; //字模點陣數(shù)據(jù)數(shù)量(高*寬/8) 把這句修改一下 size = hi / 16 * hi; //字模點陣數(shù)據(jù)數(shù)量(高*寬/8) 這樣試試 |
188610329 發(fā)表于 2024-8-11 01:24 多謝指點,我改過后也沒作用,而實際使用時hi最大值也不超過64,而涉及到hi計算時也有變量u16 size變量參與應(yīng)該也不能超值。 |
ppcbug 發(fā)表于 2024-8-10 22:48 你好,并沒有“函數(shù)未聲明”的警告,我只會編寫一些簡單的程序,一般需要調(diào)試的函數(shù)以及需要調(diào)用的函數(shù)我都是按順序先寫到主函數(shù)的前面,所以不存在函數(shù)聲明問題。 |
void EPD_Display_num(u16 x0, u16 y0, u8 hi,u8 dat) => void EPD_Display_num(u16 x0, u16 y0, u16 hi,u8 dat) 試試 |
是不是 函數(shù) 在外 而 沒有聲明? KEIL 和 IAR 好像 函數(shù)不聲明 是 有一定比例 會出問題的。 檢查一下 , 是否 有 【函數(shù)未聲明】 的警告。 鑒于可能導(dǎo)致運行錯誤, 我覺得應(yīng)該改成 【錯誤】而不是警告。 |
![]() |
Powered by 單片機教程網(wǎng)