找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

PA0设置为准双向模式做按键,为什么不行?

[复制链接]
跳转到指定楼层
楼主
ypwang314 发表于 2017-3-18 08:31:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
NUC472芯片,想用PA0做一个按键。
省掉了不相关的部分,程序如下:
SYS_UnlockReg();
..............................................................
SYS->GPA_MFPL    =    (SYS->GPA_MFPL & (~SYS_GPA_MFPL_PA0MFP_Msk) ) | SYS_GPA_MFPL_PA0MFP_GPIO  ;   
..................................................
SYS_LockReg();
..........................................................

GPIO_SetMode(PA,BIT0,GPIO_MODE_QUASI);
    PA0 = 1;
     if(PA0 == 0)
    {
        if(PA0 == 0)
        {
        SPIflshUpload();
        }
    }
按钮一直没有做用,就用示波器看了一下,结果发现不管我的按钮按不按下去PA0都是低电平的(另一个按键PI3口相同设置一直都是高电平)
如果用GPIO_SetMode(PA,BIT0,GPIO_MODE_OUTPUT)A0上才会有一个上升到芯片供电电压一半的短脉冲。
后来加了一个10K的上接电阻,按键才算正常了。是我漏掉了什么设置吗?请高手指教。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
arm_nuedu 发表于 2017-3-18 10:14:05 | 只看该作者
你这个问题我也不清楚,但刚从新唐培训出来,准双向mode讲的是,为了防止漏电,在此模式下,就像该pin接到vcc或者gnd!!!
回复 支持 反对

使用道具 举报

板凳
arm_nuedu 发表于 2017-3-18 10:14:26 | 只看该作者
你这个问题我也不清楚,但刚从新唐培训出来,准双向mode讲的是,为了防止漏电,在此模式下,就像该pin接到VCC或者GND!!!
回复 支持 反对

使用道具 举报

地板
arm_nuedu 发表于 2017-3-18 10:14:50 | 只看该作者
你这个问题我也不清楚,但刚从新唐培训出来,准双向mode讲的是,为了防止漏电,在此模式下,就像该pin接到VCC或者GND!!!
回复 支持 反对

使用道具 举报

5#
arm_nuedu 发表于 2017-3-18 10:17:18 | 只看该作者
另外,请问是接10k的上拉电阻吗?电阻在外部吗?
回复 支持 反对

使用道具 举报

6#
 楼主| ypwang314 发表于 2017-3-18 10:37:36 | 只看该作者
arm_nuedu 发表于 2017-3-18 10:17
另外,请问是接10k的上拉电阻吗?电阻在外部吗?

10K是我外部加的,加了之后就可以正常工作。
现在这个PA口感觉就像标准51的P0口内部没有上拉一样,但是看新唐的资料里面在准双向模式,如果我让PA = 1,应该有一个百微安级的上拉。
but it'not work.
回复 支持 反对

使用道具 举报

7#
Angus 发表于 2017-3-18 15:31:50 | 只看该作者
arm_nuedu 发表于 2017-3-18 10:14
你这个问题我也不清楚,但刚从新唐培训出来,准双向mode讲的是,为了防止漏电,在此模式下,就像该pin接到V ...

对于不用的  GPIO 口,如果配置成输入了,电路上就要接地或电源,否则有微安级的漏电流。
如果悬空了,就要配成准双向输出1。
回复 支持 反对

使用道具 举报

8#
arm_nuedu 发表于 2017-3-18 16:40:59 | 只看该作者
谢谢你们的回答!
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU