野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14451|回复: 11

GPIOB->IDR & 0xf000 这个怎么调用函数实现

[复制链接]
发表于 2016-7-20 16:20:23 | 显示全部楼层 |阅读模式
switch(GPIOB->IDR & 0xf000)
回复

使用道具 举报

 楼主| 发表于 2016-7-20 16:46:34 | 显示全部楼层
不好意思 我这个程序有错误,等我调试完了  再上传
回复 支持 反对

使用道具 举报

发表于 2016-7-20 17:02:42 | 显示全部楼层
你问的是什么
回复 支持 反对

使用道具 举报

发表于 2016-7-20 17:03:27 | 显示全部楼层
IDR是低16位有效的,你这样一运算就全部都被清0了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 17:32:46 | 显示全部楼层
fire 发表于 2016-7-20 17:03
IDR是低16位有效的,你这样一运算就全部都被清0了。

switch(GPIOB->IDR & 0xf000)                对应的是判断PB 12-PB15 的状态  我想改成判断PB7-PB10  不知道怎么改。

你说的GPIO_READINPUTBIT(GPIOB,端口)  他返回的是bool 类型的 而不是引脚的状态
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 17:34:23 | 显示全部楼层

就是想用函数来实现这条语句,
QQ图片20160720173345.png
回复 支持 反对

使用道具 举报

发表于 2016-7-20 17:50:51 | 显示全部楼层
a18270826679 发表于 2016-7-20 17:34
就是想用函数来实现这条语句,

你直接用 写四个 if else就可以搞定了
while(1)
{
    if( (GPIOB, GPIO_Pin_12)  == RESET )   // 这里假设按键按下是低电平
            按键按下了具体干啥你自己决定;
    else   具体干啥你自己决定;

    if( (GPIOB, GPIO_Pin_13)  == RESET )   // 这里假设按键按下是低电平
            按键按下了具体干啥你自己决定;
    else   具体干啥你自己决定;

    if( (GPIOB, GPIO_Pin_14)  == RESET )   // 这里假设按键按下是低电平
            按键按下了具体干啥你自己决定;
    else   具体干啥你自己决定;

    if( (GPIOB, GPIO_Pin_15)  == RESET )   // 这里假设按键按下是低电平
            按键按下了具体干啥你自己决定;
    else   具体干啥你自己决定;
}


当然还有其他的方法,我怕写出来你看不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 17:55:54 | 显示全部楼层
晋奇 发表于 2016-7-20 17:50
你直接用 写四个 if else就可以搞定了
while(1)
{

你这个是单独的独立按键?  我想做的是矩阵键盘
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 17:56:21 | 显示全部楼层
晋奇 发表于 2016-7-20 17:50
你直接用 写四个 if else就可以搞定了
while(1)
{

我先试下,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 18:09:58 | 显示全部楼层

..\HARDWARE\KEY\key.c(55): warning:  #174-D: expression has no effect
        if((GPIOB,GPIO_Pin_9)==RESET)这样写报警告





回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 18:29:33 | 显示全部楼层
a18270826679 发表于 2016-7-20 18:09
..\HARDWARE\KEY\key.c(55): warning:  #174-D: expression has no effect
        if((GPIOB,GPIO_Pin_9)==RES ...

谢谢火哥  你能不能把其他的方法也跟我我说下,if  的我学会了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-20 18:30:54 | 显示全部楼层
a18270826679 发表于 2016-7-20 18:29
谢谢火哥  你能不能把其他的方法也跟我我说下,if  的我学会了

if  的效率太慢了
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 03:20 , Processed in 0.032574 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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