野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 413|回复: 16

新人求助

[复制链接]
发表于 2022-10-19 16:19:58 | 显示全部楼层 |阅读模式
根据视频做的按键检测为什么Key1可以检测到Key2检测不了

Key1 是PA0 Key2是PC13
按Key1有反应 Key2没反应
野火论坛202210191619287690..png
野火论坛202210191618514781..png
回复

使用道具 举报

 楼主| 发表于 2022-10-19 16:21:38 | 显示全部楼层
直接用例程里的程序就能成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-19 16:32:44 | 显示全部楼层
试了一下  把例程bsp_key的代码粘贴过来Key2还是不行
回复 支持 反对

使用道具 举报

发表于 2022-10-20 08:46:16 | 显示全部楼层
检查一下按键2按下时的电平是高还是低
回复 支持 反对

使用道具 举报

发表于 2022-10-20 17:44:08 | 显示全部楼层
MX_GPIO_Init()这个函数是干啥?先去掉看看,会不会有冲突呢?
回复 支持 反对

使用道具 举报

发表于 2022-10-20 17:46:09 | 显示全部楼层
整天想睡觉 发表于 2022-10-20 08:46
检查一下按键2按下时的电平是高还是低

或者把这两个if语句交换一下顺序看PC13能不能起作用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 14:51:22 | 显示全部楼层
羊烊 发表于 2022-10-20 17:44
MX_GPIO_Init()这个函数是干啥?先去掉看看,会不会有冲突呢?

那个是CubeMX自带的初始化函数 去掉了还是不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 14:51:48 | 显示全部楼层
羊烊 发表于 2022-10-20 17:46
或者把这两个if语句交换一下顺序看PC13能不能起作用。

调换后还是不起作用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 14:56:46 | 显示全部楼层
整天想睡觉 发表于 2022-10-20 08:46
检查一下按键2按下时的电平是高还是低

按下是高电平
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 15:00:45 | 显示全部楼层
我用这个函数检测按键是能够检测到的 野火论坛202210211459346957..png
但是用了写的Key_Scan函数就只能检测到Key1了
回复 支持 反对

使用道具 举报

发表于 2022-10-21 16:25:50 | 显示全部楼层
你自己写的函数是错误的啊...if(Key_Scan(GPIOC,GPIO_PIN_13==KEY_ON))这是啥写法?
应该修改为:if(Key_Scan(GPIOC,GPIO_PIN_13)==KEY_ON)才正确呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 16:29:57 | 显示全部楼层
羊烊 发表于 2022-10-21 16:25
你自己写的函数是错误的啊...if(Key_Scan(GPIOC,GPIO_PIN_13==KEY_ON))这是啥写法?
应该修改为:if(Key_Sc ...

啊 我蠢了 现在可以了  感谢大佬  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-22 16:42:45 | 显示全部楼层
不过话说为什么之前的函数PA0能用PC13用不了
if函数没有条件的话不是应该执行不了的吗
就算是将两个if函数先后顺序调换后还是PA0按键能用PC13的按键用不了
是引脚的功能导致的吗还是什么其他原因
回复 支持 反对

使用道具 举报

发表于 2022-10-22 20:07:44 | 显示全部楼层
Honghy 发表于 2022-10-22 16:42
不过话说为什么之前的函数PA0能用PC13用不了
if函数没有条件的话不是应该执行不了的吗
就算是将两个if函数 ...

因为GPIO_PIN_0的实际值恰好与KEY_ON的值是一样的,都等于1,所以PA0没有问题,
但GPIO_PIN_13就不一样,你的语句实际执行的是判断PC0是否有键被按下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-22 23:19:25 来自手机 | 显示全部楼层
羊烊 发表于 2022-10-22 20:07
因为GPIO_PIN_0的实际值恰好与KEY_ON的值是一样的,都等于1,所以PA0没有问题,
但GPIO_PIN_13就不一样, ...

懂了  谢谢大佬!
回复 支持 反对

使用道具 举报

发表于 2022-11-10 16:44:14 | 显示全部楼层
回复

使用道具 举报

发表于 2022-11-21 16:41:28 | 显示全部楼层
Honghy 发表于 2022-10-22 16:42
不过话说为什么之前的函数PA0能用PC13用不了
if函数没有条件的话不是应该执行不了的吗
就算是将两个if函数 ...

你的这样写就能用了了兄弟,为啥我的换了写法以后还是不对呀!~QAQ
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-12-6 14:37 , Processed in 0.032613 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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