按键输入实验有问题?

2019-08-14 19:18发布

最近在看原子的战舰板,感觉很好用。现在做到按键输入实验,key.c中有个函数不是很明白 [mw_shl_code=c,true]u8 KEY_Scan(u8 mode) { static u8 key_up=1; if(mode) key_up=1; if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1)) { delay_ms(10); key_up=0; if(KEY0==0) return KEY_RIGHT; else if(KEY1==0) return KEY_DOWN; else if(KEY2==0) return KEY_LEFT; else if(KEY3==1) return KEY_UP; } else if(KEY0==1&&KEY1==1&&KEY2==1&&KEY3==0) key_up=1; return 0; } [/mw_shl_code] 这个函数中,哪里能体现出mode:1支持连按和mode:0不支持连按?
main函数中这样调用,MODE=0;KEY_Scan(MODE).
我是这样理解的:无论MODE为何值,每一次调用,执行到 [mw_shl_code=c,true]if(key_up&&(KEY0==0||KEY1==0||KEY2==0||KEY3==1))[/mw_shl_code] [mw_shl_code=c,true]这一行,key_up总是为1,子函数也没有循环,所以两种模式根本体现不出来,求指教。。。[/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
_tank_
1楼-- · 2019-08-16 15:53
回复【12楼】x1213378204:
---------------------------------
另外还有一点 你说为什么main函数中和.c文件中都有.h声明
main.c中调用.h 我上一个回复说了 
.c中添加了相同的.h 有两个好处  
比如LED.c中调用led.h
1、因为led.h中添加了#include"stm32f10x.h"    stm32f10x.h中又有#include"stm32f10x_conf.h"   
 stm32f10x_conf.h中又有#inlcude"stm32f10x_gpio.h" 所以你才能使用 库函数中的GPIO的相关函数 
总之一句话 .h文件可以嵌套调用 且不会出现重复定义 因为.h中只是声明  声明多少次都没有关系 
这样 同名的.c添加同名的.h 看起来也更有条理 
2、如果在XXX.c中你定义了一个函数
void test()
{
    ……
    fun();
    ……
}
如果fun()这个函数是在test()之后定义的  那么你必须在test()定义之前声明void fun(void);   
此时因为我们有添加XXX.h的头文件 在这个头文件中有fun()的声明 所以省去.c中的声明

这就是我的一些理解
x1213378204
2楼-- · 2019-08-16 17:38
回复【14楼】_tank_:
---------------------------------
//文件名:ss.c
#include <stdio.h>
#include <stdlib.h>
#include "les.h"
int main()
{
float i,j,nu;
scanf("%f %f",&i,&j);
nu=sum(i,j);
printf("log%.1f,%.1f = %.1f ",i,j,nu);
system("pause");
return 0;
}


//文件名:les.c
#include "math.h"
#include "les.h"
 float sum(float x,float y)
{
float s;
s=log(y)/log(x);
return s;
}

//文件名:les.h
#ifndef __les_h
#define __les_h
float sum(float x,float y);
#endif

在VC环境运行,为什么会连接错误呢?
这三个文件在同一个目录下。
_tank_
3楼-- · 2019-08-16 19:19
回复【15楼】x1213378204:
---------------------------------
没有配置头文件路径吗
x1213378204
4楼-- · 2019-08-16 19:20
回复【16楼】_tank_:
---------------------------------
VC环境也要配置吗?
x1213378204
5楼-- · 2019-08-16 23:37
 精彩回答 2  元偷偷看……
_tank_
6楼-- · 2019-08-17 04:24
回复【18楼】x1213378204:
---------------------------------
这我就不清楚了 VC不是怎么懂 去发个新帖问问

一周热门 更多>