找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

C語言函數(shù)帶入?yún)?shù)運(yùn)行不正常請各位指點(diǎn)[已解決]

查看數(shù): 1568 | 評論數(shù): 10 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2024-8-9 20:53

正文摘要:

這兩天調(diào)試一個(gè)函數(shù),總是不能達(dá)成控制目的而編譯結(jié)果為無錯(cuò)誤、無警告,最后發(fā)現(xiàn)是變量帶參運(yùn)算不正常搞得一頭霧水,以前沒碰到這種情況誠請高手指點(diǎn)一下,先謝了!(單片機(jī)為STC8H8K64U,編譯環(huán)境為keil uv3或keil u ...

回復(fù)

ID:281828 發(fā)表于 2024-8-12 18:19
因?yàn)槲彝骐娮觾r(jià)簽?zāi)習(xí)r能夠找到的例程都是arduino-esp8266的和stm32的而我比較容易上手的就是esp8266模塊,幾乎都是用arduino代碼實(shí)現(xiàn)了刷屏操作后就移植初始化代碼到stc51單片機(jī)中再深入玩耍,碰到了眼下的問題后,今天我再次連接了esp8266模塊并將這兩個(gè)函數(shù)貼到了arduino上編譯燒錄后發(fā)現(xiàn)顯示非常順利毫無問題,以前我也經(jīng)常在arduino上寫一些簡單的c函數(shù),有時(shí)也復(fù)制arduino上的c函數(shù)到keil3中編譯應(yīng)用,也重來沒出現(xiàn)過問題,而此次是經(jīng)過反向驗(yàn)證應(yīng)該說明函數(shù)真的沒毛病了,那么,問題在哪里呢?我也重新安裝了keil3軟件,這是玩了很多年51單片機(jī)第一次遇到的久拖不決的問題,真的百思不得其解。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

ID:281828 發(fā)表于 2024-8-12 18:04
xrba 發(fā)表于 2024-8-12 10:28
還真沒有發(fā)現(xiàn)問題在哪兒,最可能的原因是 size 值不對。
1、可否跟蹤一下,查查size,或者打印一個(gè)日志。
...

多謝,我今天又弄了好久仍然沒找到原因,問題應(yīng)該不是出在size這個(gè)變量,在我的測試中hi=64是固定值,我將size置換成256仍然無果,另外程序調(diào)試過程中也能看到這個(gè)變量的運(yùn)算結(jié)果為0x100(=256)。
ID:1130414 發(fā)表于 2024-8-12 10:28
還真沒有發(fā)現(xiàn)問題在哪兒,最可能的原因是 size 值不對。
1、可否跟蹤一下,查查size,或者打印一個(gè)日志。
2、size = hi * hi / 16; //字模點(diǎn)陣數(shù)據(jù)數(shù)量(高*寬/8)
把這句修改一下
size = hi / 16 * hi; //字模點(diǎn)陣數(shù)據(jù)數(shù)量(高*寬/8)
這樣試試
ID:281828 發(fā)表于 2024-8-11 20:32
188610329 發(fā)表于 2024-8-11 01:24
void EPD_Display_num(u16 x0, u16 y0, u8 hi,u8 dat)

=>

多謝指點(diǎn),我改過后也沒作用,而實(shí)際使用時(shí)hi最大值也不超過64,而涉及到hi計(jì)算時(shí)也有變量u16 size變量參與應(yīng)該也不能超值。
ID:281828 發(fā)表于 2024-8-11 20:27
ppcbug 發(fā)表于 2024-8-10 22:48
是不是 函數(shù) 在外 而 沒有聲明?
KEIL  和 IAR  好像 函數(shù)不聲明 是 有一定比例 會出問題的。

你好,并沒有“函數(shù)未聲明”的警告,我只會編寫一些簡單的程序,一般需要調(diào)試的函數(shù)以及需要調(diào)用的函數(shù)我都是按順序先寫到主函數(shù)的前面,所以不存在函數(shù)聲明問題。
ID:624769 發(fā)表于 2024-8-11 01:24
void EPD_Display_num(u16 x0, u16 y0, u8 hi,u8 dat)

=>

void EPD_Display_num(u16 x0, u16 y0, u16 hi,u8 dat)

試試
ID:628113 發(fā)表于 2024-8-10 22:48
是不是 函數(shù) 在外 而 沒有聲明?
KEIL  和 IAR  好像 函數(shù)不聲明 是 有一定比例 會出問題的。

檢查一下 , 是否  有  【函數(shù)未聲明】 的警告。
鑒于可能導(dǎo)致運(yùn)行錯(cuò)誤, 我覺得應(yīng)該改成 【錯(cuò)誤】而不是警告。
ID:161164 發(fā)表于 2024-8-10 17:37

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

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

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