两个类似的函数为什么只能执行一个

2019-07-21 01:09发布

自己写了两个类似的按键扫描函数,函数名不一样(函数1和函数2),然后都放在主函数的死循环里面。如果函数体1在函数体2的前面,那么函数2就不执行了;相反,如果函数体2在函数体1的前面,那么函数1就不执行了。这是什么情况??????     工程在附件里面,两个函数分别为u8 Scan_Key(void) 和u8 Scan_Key_2(void),都在TM1650.c文件里面!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
shichuang
1楼-- · 2019-07-21 02:37
已解决,我把IIC初始化函数里面的两组IIC数据线和时钟线交换了一下位置就可以了,也不知道到底为什么这样就可以了!
warship
2楼-- · 2019-07-21 07:04
你怎么知道它没有执行呢?
shichuang
3楼-- · 2019-07-21 10:36
warship 发表于 2019-5-19 10:36
你怎么知道它没有执行呢?

我就是在开发板上试的,只要把函数体1放到前面,这个扫描函数就有用,然后2就没用;就是这个意思,那个“执行”一词用的不是太好,不要介意;仿真是都可以运行到。
shichuang
4楼-- · 2019-07-21 13:07
 精彩回答 2  元偷偷看……
warship
5楼-- · 2019-07-21 13:49
本帖最后由 warship 于 2019-5-19 12:16 编辑

我没有深入了解你用的这个键扫芯片,
一般这种芯片调用时就会读取按键,
连续两次调用类似的函数,
只有第一个有按键结果也是正常的。
shichuang
6楼-- · 2019-07-21 18:06
warship 发表于 2019-5-19 12:14
我没有深入了解你用的这个键扫芯片,
一般这种芯片调用时就会读取按键,
连续两次调用类似的函数,

这款芯片是TM1650,可以驱动数码管,也可以通过指令读取扫描到的按键。是用IIC总线通信的,如果是你说的那种情况,那怎么解决啊?

一周热门 更多>