求助 库函数
-布丁橘长 的视频配套例程 中有 函数,在主函数中,怎么调用?比如:027-多功能按键-状态机-长按、短按、双击里面的key_multi.h 里面的 key_multi(void); 我在另外一个主函数里面,怎么调用。没有相关案例啊。那位高手帮忙回复下key_multi(void);的调用不会。谁帮忙演示一下。 主程序,要求按键1 单击加 number ++,双击 number--,长按 number+1000。调用 key_multi 怎么写? wnagming 发表于 2024-8-17 20:09
引用头文件直接调用啊,有点莫名其妙
我不会,能不能帮忙写一下? 被调用的原函数
麻烦哪位帮忙指点一下 这个函数会返回unsigned char,也就是键值和键功能,要调用就直接??==key_multi();或直接if(key_multi(void)==??)等。 还是这样 找不到原因。哪位高手帮个忙 我没看过他的源码,但是从你的截图中看出来确实你用的压根儿对函数的用法上理解就有问题
先上图说第一个问题
这里,函数是带返回值的,后面也有注释,也就是说,
key_multi()这个函数,返回一个unsigned char类型的值。
然后说第二个问题
unsigned char key_multi(void);
而你的问题恰恰就处在这里,函数的尾部括号是(void),也就是没有入口参数,
但你调用的时候却把11写进去,首先写进去不管这个值对不对,
编译器就一定会报错,因为函数没有入参。
其次说这个11是哪来的,是你理解的返回键值为1对吗?
你定义一个变量,比如unsigned char KeyNum,
KeyNum用来保存函数key_multi()的返回值,
那么这个时候是KeyNum = key_mult();//将读到的键和键值保存在KeyNum
通过判断KeyNum的结果再去判断哪个按键被按下以及对应的按键功能,
那么就是if(KeyNum == XXX),去做判断就可以。
(红色字体为啰嗦的两句,可以不看)
因为只看了你两张截图,KeyNum是个复合值,那么得去做分离,看他的程序里有没有对复合值做处理,
有的话,你就接着按照他的程序处理继续写下去就行;
如果没有,无非就是#define里对按键的声明
11 12 13
21 22 23
31 32 33
41 42 43
把KeyNum的十位和个位做一个分离,然后根据得出的结果判断是哪一个按键被按下,执行单击、双击、长按的。
希望能帮到你,但也希望你可以再继续加强下基础,加油。
页:
[1]
2