野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16287|回复: 9

初学STM32,问题请假!

[复制链接]
发表于 2015-5-25 20:46:24 | 显示全部楼层 |阅读模式
从事硬件3年,工作需要,学习简单程序,碰到问题,向大家学习, 请问 Key_Scan  里面的 0或者1是代表什么,为什么KEY1按下去可以亮灭,KEY2就没反应,或者KEY2按下去可以亮灭,KEY1就没反应,里面的0,1代表什么意思  

        while(1)                           
        {          
                if( Key_Scan(GPIOA,GPIO_Pin_0,1) == KEY_ON ) // KEY1
                {
                        /*LED1·′×a*/
                        LED1_TOGGLE;
                }

                if( Key_Scan(GPIOC,GPIO_Pin_13,0) == KEY_ON ) // KEY2
                {
                        /*LED2·′×a*/
                        LED2_TOGGLE;
                }   
        }

回复

使用道具 举报

 楼主| 发表于 2015-5-26 08:53:45 | 显示全部楼层
都不愿意回答小问题,自己顶下喽  
回复 支持 反对

使用道具 举报

发表于 2015-5-26 09:00:21 | 显示全部楼层
Key_Scan  里面的 0或者1是代表按键是那个电平有效,这与原理图是对应的,KEY1(PA0)未按下是低电平,按下就是高电平(即是1),所以判断是否为高电平(即是1),,Key_Scan(GPIOA,GPIO_Pin_0,1),,KEY2原理相同的
回复 支持 反对

使用道具 举报

发表于 2015-5-26 09:04:37 | 显示全部楼层
板子的按键一个按下是高电平一个按下是低电平,这函数用0和1来区分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-26 09:06:32 | 显示全部楼层
亽亼 发表于 2015-5-26 09:00
Key_Scan  里面的 0或者1是代表按键是那个电平有效,这与原理图是对应的,KEY1(PA0)未按下是低电平,按下 ...

也就是说KEY_ON  (宏定义是0), , Key_Scan(GPIOA,GPIO_Pin_0,0)   里面也必须是0才按键有效对吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-26 09:12:24 | 显示全部楼层
flyleaf 发表于 2015-5-26 09:04
板子的按键一个按下是高电平一个按下是低电平,这函数用0和1来区分

板子是野火MINI的   都是检测低电平有效,  
回复 支持 反对

使用道具 举报

发表于 2015-5-26 10:40:08 | 显示全部楼层
本帖最后由 亽亼 于 2015-5-26 11:47 编辑

MINI-V2.pdf (149.28 KB, 下载次数: 13)
确认是一个高电平有效一个是低电平有效
注意按键引脚上不要接其它模块,部分模块可能共用引脚
回复 支持 反对

使用道具 举报

发表于 2015-5-26 10:41:42 | 显示全部楼层
i265 发表于 2015-5-26 09:06
也就是说KEY_ON  (宏定义是0), , Key_Scan(GPIOA,GPIO_Pin_0,0)   里面也必须是0才按键有效对吗

你要进入Key_Scan函数看看这个函数的实现方法,并且这个Key_Scan函数内容很简单的,你应该也是可以分析得懂的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-29 22:38:28 | 显示全部楼层
flyleaf 发表于 2015-5-26 09:04
板子的按键一个按下是高电平一个按下是低电平,这函数用0和1来区分

while(1)                           
        {          

               
                if( Key_Scan(GPIOC,GPIO_Pin_13,0) == KEY_ON  )/// o′ú±í°′¼ü°′ÏÂμíóDD§
                {
                        /*LED1·′×a*/
                        //LED2_TOGGLE;
                        LED2_OFF;

          }
                        if( Key_Scan(GPIOA,GPIO_Pin_0,1) == KEY_ON  )// 1′ú±í°′¼ü°′ϸßóDD§
                {
                        /*LED1·′×a*/
                        LED1_TOGGLE;
                }
  }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-29 22:41:31 | 显示全部楼层
i265 发表于 2015-5-29 22:38
while(1)                           
        {          

为什么MAIN.C文件里面有这段程序,bsp_key.C 文件里面又有 , 都是什么意思 谢谢兄弟  初学STM  
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 06:13 , Processed in 0.032594 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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