该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

测试平台是一个stm32f103zet6的ARM芯片,

我这里只是把它当作单片机来用,下面的程序是平台提供的,可以正常使用,有几个地方不能理解!

//mode为0是不支持连续按

//mode为1是支持连续按

//返回0表示无按键按下

//返回值在1~4内,则对应四个按键a,b,c,d

u8 key_a(u8 mode)

{

static u8 key_up=1;//按键按下标志

if(mode) key_up=1;//支持连按

if(key_up&&(a==0||b==0||c==0||d==1))

{

delay_ms(10);//消抖

key_up=0;

if(a==0) return=1;//a键按下

else if(b==0) return=2;//b键按下

rese if(c==0) return=3;//c键按下

rese if(d==1) return=4;//d键按下

if(key_up&&(a==1||b==1||c==1||d==0))

keu_up=1;//无按键按下

}

return 0;//无按键按下返回0

}

这是一个完整的按键判断程序,带返回值带一个参数!

当key_a(1);时支持连按(也就是按住按键不松手数值会一直往上加)

按键a,b,c是低电平触发,d按键是高电平触发!

这里有几个问题无法理解,

第一条语句static u8 key_up=1;中的static有什么用? 后面的u8. 是申明一个8位的无符号数据,同时初始值为1,

接着if(mode) key_up=1; 这里mode是1还是0好像没有什么用,因为key_up在上一条语句已经赋值为1了,

到了按键判断语句

if(key_up&&(a==0||b==0||c==0||d==1))

这里两个括号是不是先判断第二个括号里面的条件,然后再跟key_up判断如果为真就执行if里面的语句,

我不能理解的是怎么通过mode来判断支不支持连续按!

if条件判断C语言,if条件判断语句,谁能帮我分析一下?相关推荐

  1. C语言循环结构素数判断,C语言实验之判断素数(循环结构java)方法讲解

    C语言实验之判断素数(循环结构java)方法讲解 Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prim ...

  2. php判断浏览器语言国内外,PHP判断浏览器语言

    我们可以通过PHP判断浏览器语言,给访客放出不同的语言或组件,让访客觉得我们为他们精心安排了一些内容,岂不美妙.在PHP判断浏览器类型一文中,我介绍了使用$_SERVER["HTTP_USE ...

  3. c语言编程实现密码判断,C语言实现密码判断

    在平时应用中,我们常常会需要对于密码的判断,今天Xushine研究院就给大家带来一段代码,这个代码是可扩展的,可以随意自行添加~ #include #include #include #define ...

  4. c语言中字节数如何判断,C语言中怎样判断输入的是整数还是浮点数

    满意答案 syl330046 2017.05.11 采纳率:43%    等级:7 已帮助:1058人 scanf(%s,str);//先存成字符串if(NULL==strchr(str,'.'))/ ...

  5. c语言case可以判断多个条件吗,case 多个条件

    威纶HMI宏指令选择语句大致分为两类分别是 if 语句 Case 语句 01 if 语句 if语句用来判断给定条件是否满足,根据判断结果决定是否执行某个操作. 然而if语句在这里大致可以分为3种形式: ...

  6. R语言中通过鞅残差(martingale residual)分析、可视化自变量与鞅残差的关系判断指定连续变量和风险比HR值是否存在着线性趋势、Cox回归对线性条件的诊断

    R语言中通过鞅残差(martingale residual)分析.可视化自变量与鞅残差的关系判断指定连续变量和风险比HR值是否存在着线性趋势.Cox回归对线性条件的诊断 目录

  7. R语言条件判断语句编程:使用if/else语句实现条件逻辑判断、使用all函数判断向量中的值是否全部都满足条件

    R语言条件判断语句编程:使用if/else语句实现条件逻辑判断.使用all函数判断向量中的值是否全部都满足条件 目录

  8. Jinja2常用模板语言(条件判断if,循环遍历for,过滤器)

    python开发前后端不分离web项目的时候,前端通常使用jinja2模板语言.现在介绍一下jinja2模板语言的基本语法. 普通变量 变量表示 格式:{{ 变量名 }} @app.route('/s ...

  9. c语言char字符判断条件,C语言入门 — 字符型char

    本篇文章将会学习字符类型,并会结合 Ascii码对照表进行学习, 首先我们先来看下 #include // 标准输入输出头文件 stdio.h int main(void) // main 函数,vo ...

最新文章

  1. 网站发布问题及使用Web Deployment Projects
  2. SpringMVC 学习笔记(五) 基于RESTful的CRUD
  3. 成功解决File amp;quot;f:\program files\python\python36\lib\re.pyamp;quot;, line 142, in amp;lt;modul
  4. python:栈的理解与应用,让你快速入门Python
  5. 半路学编程,可以成为大牛吗?
  6. 计算机应用基础 东师 离线,东师1609计算机应用基础离线作业(8页)-原创力文档...
  7. teamviewer 破解工具 github
  8. C++11常用特性的使用经验总结-概述及目录
  9. php兼容net的md5,解决c# md5与php md5加密不一致的问题(md5(unicode))
  10. 离散数学及其应用(第七版黑书)笔记
  11. 常见的浏览器以及内核
  12. 开关电源MOS管选型500V、600V、650V参数
  13. 一、ubuntu16.04下无法连接wifi(试遍所有方法及解决方案)
  14. 神经网络压缩库Distiller学习
  15. 特别舍得花钱的穷人们
  16. more命令的基本实现
  17. 安全漏洞一内核漏洞利用
  18. 如何规划自己的职业生涯
  19. [英语]凡是倒装都有表“强调“之意
  20. 引用网络jQuery地址

热门文章

  1. c语言do while语句用法6,c语言do while的用法
  2. 拖动小游戏html,Cocos Creator 入门篇-拖拽小游戏(一)
  3. mysql select count() count(1)_select count()和select count(1)的区别和执行方式讲解
  4. 彩色静电植绒印花工艺的五个方法
  5. Android内存泄漏定位、分析、解决全方案
  6. ceph关闭同步之后的故障记录
  7. 关于 element 可以被找到但是不能被click()的问题
  8. Oracle11gr2新增APPEND_VALUES提示
  9. Linux中强大的top命令
  10. Scribe安装问题