我在網上找到一個小電視的項目,就想照著它的思路手敲一遍代碼。用到了TFT_eSPI庫,其中有一塊代碼功能是在tft屏上顯示漢字(正常只能打印英文),就是取中文字模當圖顯示。
↑這是字庫
被我注釋掉的是原來的函數。我發現for循環里的hanzi[k].Index[0] == c[0] && hanzi[k].Index[1] == c[1] && hanzi[k].Index[2] == c[2] 好像有點問題,上傳以后不斷拋出異常,我一開始以為是for循環有問題,但是我刪了if語句后讓它循環從串口輸出"Hello"這類普通字符是可以的,一旦遍歷hanzi[k].hz_id這類要遍歷字庫的東西它就和之前一樣了,我上網查了之后好像是說堆棧空間溢出了,但是在字庫那里我了解了一下PROGMEM關鍵字就是為了解決這一情況的(把變量存入閃存空間),所以已經不知所措了。 上圖是我想讓它遍歷字庫找到字就輸出!Find,結果和之前一樣報錯。 在這里麻煩各位抽出時間幫我看一下子,謝謝大家.
|