![]() |
因为我玩电子价签墨水屏时能够找到的例程都是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 好像 函数不声明 是 有一定比例 会出问题的。 检查一下 , 是否 有 【函数未声明】 的警告。 鉴于可能导致运行错误, 我觉得应该改成 【错误】而不是警告。 |
![]() |