牛卧堂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