• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于按键对应GPIO初始化的问题

e889899e4b3e34cd 2018-09-28 浏览量:949
GPIOD->CRL&=0xFFFFF0FF;//清除该位原来的设置
GPIOD->CRL|=0x00000300;//D2推挽输出,50MHZ
GPIOD->ODR|=1<<2;//D2置1

GPIOA->CRH&=0xFFFFFFF0;//清除该位原来的设置
GPIOA->CRH|=0x00000003;//A8推挽输出,50MHZ
GPIOA->ODR|=1<<8;//A8置1

  GPIOC->CRL&=0xFFFFFF0F;//清除该位原来的设置
GPIOC->CRL|=0x00000080;//C1按键口上拉下拉输入
  

  GPIOC->CRH&=0xFF0FFFFF;//清除该位原来的设置
GPIOC->CRH|=0x00800000;//C13按键口上拉下拉输入
  //GPIOC->IDR=1<<1|1<<13;
  GPIOC->ODR|=1<<1;//PC1上拉本来按键写的输入来,导致按键不能使用

  GPIOC->ODR|=1<<13;//PC13上拉




程序倒数第二行按键的IO口为什么写输出高电平? 前边明明吧按键PC1设置为输入上拉了,难道不是输入高电平么?这样子GPIOC->IDR|=1<<1;

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个程序本身有问题,GPIO配置为输入的时候就不要在ODR寄存器配置输出电平了,本身是冲突的。

    • 发布于 2018-09-28
    • 举报
    • 评论 1
    • 1
    • 0
小白爱32 回复了 donatello:OKOK知道了,谢谢 回复

其他答案 数量:5
  • 看到代码我就明白了,这里是寄存器,他的意思是打开上拉电阻,这个跟输出模式的输出高电平是一样的,望采纳
    • 发布于2018-09-28
    • 举报
    • 评论 2
    • 0
    • 0
小白爱32 回复了 涛涛涛涛涛 :我知道,既然前边我都设置为上拉输入了,为什么后边还要上拉输出? 回复
涛涛涛涛涛 回复了 小白爱32 :你那里只是输入,如果感觉重复,可以删除一个验证一下,望采纳 回复

  • 已经设置为上拉输入模式,自然无法选择输出高电平,这里是矛盾了
    • 发布于2018-10-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 已经设置的是上拉输入了,肯定不能输出,这不是矛盾了吗
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 代码里设置的是上拉输入,所以不能输出,这里有冲突。
    • 发布于2018-10-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于按键对应GPIO初始化的问题