找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
匿名  发表于 4 天前 回帖奖励 |倒序浏览 |阅读模式
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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具

沙发
chrishu 发表于 4 天前 | 只看该作者
本帖最后由 chrishu 于 2025-3-27 16:11 编辑

引脚的复用功能默认就是GPIO功能。初始化时不用再设置复用功能。
设置成准双向模式,内部本身应该是有弱上拉的。
你可以debug状态下,调出pinview看一下引脚的配置和当前状态。是否是哪里不对。另外改成输出模式,输出1会有一个上升到芯片供电电压一半的短脉冲,考虑外面电路有拉低动作。你可以断开引脚连接再试一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

新唐MCU