找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2732|回复: 10
收起左侧

新人求助关于stm32按键控制led的问题

[复制链接]
ID:416250 发表于 2018-10-28 17:12 | 显示全部楼层 |阅读模式
刚接触,求大神指导一下现在按下PB8,PC13会输出高电平了
如何按一下PB8,PC13会一直输出高电平呢?
我还想增加一个PB7,按一下PB7,PC13会输出低电平
实现按一下PB8灯亮,按一下PB7灯灭

int KEY = PB8;
int iLed = PC13;


void setup()
{
  pinMode(PB8, INPUT);  
  pinMode(iLed, OUTPUT);  
}


void loop() {
  
  digitalWrite(PC13,LOW);
  if(digitalRead(PB8)==LOW) {
  delay(100);
  if(digitalRead(PB8)==LOW) {
  digitalWrite(PC13,HIGH);
  while(digitalRead(PB8)==LOW) {


    }
  }
  }
}
回复

使用道具 举报

ID:308437 发表于 2018-10-31 17:42 | 显示全部楼层
提示:只要设置一个标志位,主循环中检测就可以!!
回复

使用道具 举报

ID:418852 发表于 2018-11-1 07:25 | 显示全部楼层
这个 arduino 的代码,很简单的,不用想太多 ,改成这样试试看 :
void loop() {
if(digitalRead(PB8)==HIGH) {
digitalWrite(PC13,HIGH);
}
if(digitalRead(PB7)==HIGH) {
digitalWrite(PC13,LOW);
}
}

回复

使用道具 举报

ID:280876 发表于 2018-11-1 08:54 | 显示全部楼层
STM32可以这样写的?
回复

使用道具 举报

ID:418919 发表于 2018-11-1 09:20 | 显示全部楼层
设置标准位然后反转
回复

使用道具 举报

ID:149144 发表于 2018-11-1 12:38 | 显示全部楼层
LED 状态取反就可以了
回复

使用道具 举报

ID:416250 发表于 2018-11-3 15:57 | 显示全部楼层
yousunny 发表于 2018-10-31 17:42
提示:只要设置一个标志位,主循环中检测就可以!!

多谢多谢,最近学习单片机,真的很难啊
回复

使用道具 举报

ID:416250 发表于 2018-11-3 15:58 | 显示全部楼层
jj449 发表于 2018-11-1 07:25
这个 arduino 的代码,很简单的,不用想太多 ,改成这样试试看 :
void loop() {
if(digitalRead(PB8)== ...

多谢多谢,我研究研究,最近学习单片机,真的很难啊
回复

使用道具 举报

ID:416250 发表于 2018-11-3 16:00 | 显示全部楼层
wushiye54 发表于 2018-11-1 08:54
STM32可以这样写的?

arduino写的,这个稍微简单点,要不太难了
回复

使用道具 举报

ID:416250 发表于 2018-11-3 16:00 | 显示全部楼层
ngvhh 发表于 2018-11-1 09:20
设置标准位然后反转

多谢多谢
回复

使用道具 举报

ID:416250 发表于 2018-11-3 16:01 | 显示全部楼层
cuihaodianzi 发表于 2018-11-1 12:38
LED 状态取反就可以了

多谢多谢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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