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