找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言函数带入参数运行不正常请各位指点[已解决]

查看数: 1519 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-8-9 20:53

正文摘要:

这两天调试一个函数,总是不能达成控制目的而编译结果为无错误、无警告,最后发现是变量带参运算不正常搞得一头雾水,以前没碰到这种情况诚请高手指点一下,先谢了!(单片机为STC8H8K64U,编译环境为keil uv3或keil u ...

回复

ID:281828 发表于 2024-8-12 18:19
因为我玩电子价签墨水屏时能够找到的例程都是arduino-esp8266的和stm32的而我比较容易上手的就是esp8266模块,几乎都是用arduino代码实现了刷屏操作后就移植初始化代码到stc51单片机中再深入玩耍,碰到了眼下的问题后,今天我再次连接了esp8266模块并将这两个函数贴到了arduino上编译烧录后发现显示非常顺利毫无问题,以前我也经常在arduino上写一些简单的c函数,有时也复制arduino上的c函数到keil3中编译应用,也重来没出现过问题,而此次是经过反向验证应该说明函数真的没毛病了,那么,问题在哪里呢?我也重新安装了keil3软件,这是玩了很多年51单片机第一次遇到的久拖不决的问题,真的百思不得其解。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:281828 发表于 2024-8-12 18:04
xrba 发表于 2024-8-12 10:28
还真没有发现问题在哪儿,最可能的原因是 size 值不对。
1、可否跟踪一下,查查size,或者打印一个日志。
...

多谢,我今天又弄了好久仍然没找到原因,问题应该不是出在size这个变量,在我的测试中hi=64是固定值,我将size置换成256仍然无果,另外程序调试过程中也能看到这个变量的运算结果为0x100(=256)。
ID:1130414 发表于 2024-8-12 10:28
还真没有发现问题在哪儿,最可能的原因是 size 值不对。
1、可否跟踪一下,查查size,或者打印一个日志。
2、size = hi * hi / 16; //字模点阵数据数量(高*宽/8)
把这句修改一下
size = hi / 16 * hi; //字模点阵数据数量(高*宽/8)
这样试试
ID:281828 发表于 2024-8-11 20:32
188610329 发表于 2024-8-11 01:24
void EPD_Display_num(u16 x0, u16 y0, u8 hi,u8 dat)

=>

多谢指点,我改过后也没作用,而实际使用时hi最大值也不超过64,而涉及到hi计算时也有变量u16 size变量参与应该也不能超值。
ID:281828 发表于 2024-8-11 20:27
ppcbug 发表于 2024-8-10 22:48
是不是 函数 在外 而 没有声明?
KEIL  和 IAR  好像 函数不声明 是 有一定比例 会出问题的。

你好,并没有“函数未声明”的警告,我只会编写一些简单的程序,一般需要调试的函数以及需要调用的函数我都是按顺序先写到主函数的前面,所以不存在函数声明问题。
ID:624769 发表于 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 发表于 2024-8-10 22:48
是不是 函数 在外 而 没有声明?
KEIL  和 IAR  好像 函数不声明 是 有一定比例 会出问题的。

检查一下 , 是否  有  【函数未声明】 的警告。
鉴于可能导致运行错误, 我觉得应该改成 【错误】而不是警告。
ID:161164 发表于 2024-8-10 17:37

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表