找回密码
 立即注册
查看: 721|回复: 16

求助 库函数

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 19:38:38 | 显示全部楼层 |阅读模式
-布丁橘长 的视频配套例程 中有 函数,在主函数中,怎么调用?比如:027-多功能按键-状态机-长按、短按、双击  里面的  key_multi.h         里面的 key_multi(void);        我在另外一个主函数里面,怎么调用。没有相关案例啊。那位高手帮忙回复下
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:06:09 | 显示全部楼层
key_multi(void);的调用  不会。谁帮忙演示一下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:07:00 | 显示全部楼层
主程序  ,要求  按键1 单击  加 number ++,双击 number--,长按 number+1000  。调用 key_multi 怎么写?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:11:45 | 显示全部楼层
wnag*** 发表于 2024-8-17 20:09
引用头文件直接调用啊,有点莫名其妙

我不会,能不能帮忙写一下?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:18:48 | 显示全部楼层
截图202408172018346056.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:20:50 | 显示全部楼层
被调用的原函数
截图202408172020462918.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:21:58 | 显示全部楼层
麻烦哪位帮忙指点一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3194

回帖

4948

积分

论坛元老

积分
4948
发表于 2024-8-17 20:58:22 | 显示全部楼层
这个函数会返回unsigned char,也就是键值和键功能,要调用就直接??==key_multi();或直接if(key_multi(void)==??)等。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-04 11:33:11

12

主题

124

回帖

521

积分

高级会员

积分
521
发表于 2024-8-17 20:58:31 | 显示全部楼层
截图202408172057314212.jpg 还是这样 找不到原因。哪位高手帮个忙

点评

目前看,你确实C的基础比较弱一些,稍微补一点C语言基础的知识,会对你的帮助更大 ,当然补基础的时候一定不要耽误写程序 哪里不会补哪里,能快快的强大起来。 key_multi(void),你把void从括号里拿出来写到前面,  详情 回复 发表于 2024-8-17 21:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:215
  • 最近打卡:2025-05-03 00:37:12
已绑定手机

36

主题

561

回帖

1946

积分

荣誉版主

积分
1946
发表于 2024-8-17 20:59:47 | 显示全部楼层
我没看过他的源码,但是从你的截图中看出来确实你用的压根儿对函数的用法上理解就有问题
先上图说第一个问题
这里,函数是带返回值的,后面也有注释,也就是说,
key_multi()这个函数,返回一个unsigned char类型的值。
回答1.jpg
然后说第二个问题

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的十位和个位做一个分离,然后根据得出的结果判断是哪一个按键被按下,执行单击、双击、长按的。
回答2.jpg


希望能帮到你,但也希望你可以再继续加强下基础,加油。


回复 支持 1 反对 0

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 12:09 , Processed in 0.150287 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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