牛卧堂MCU技术交流

标题: PA0设置为准双向模式做按键,为什么不行? [打印本页]

作者: 匿名    时间: 2025-3-27 15:20
标题: PA0设置为准双向模式做按键,为什么不行?
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的上接电阻,按键才算正常了。是我漏掉了什么设置吗?请高手指教


作者: chrishu    时间: 2025-3-27 16:08
本帖最后由 chrishu 于 2025-3-27 16:11 编辑

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





欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2