PE0初始化上拉输入
-
// 初始化按键引脚
__SYSTEM_GPIO_CLK_ENABLE();
GPIO_InitTypeDef GPIO_Handle;
GPIO_Handle.Pin = GPIO_PIN_0;
GPIO_Handle.Mode = GPIO_MODE_INPUT;
GPIO_Handle.Pull = GPIO_PULL_UP;gpio_init(GPIO_E, &GPIO_Handle);
-
这样初始化PE0,用万用表测量PE0为什么是低电平?
-
gpio_read_pin(GPIO_E, GPIO_PIN_0);这样读也是低电平???
-
这个量出来不应该是低电平
-
@liurenwoxing 读就是这样读,还有PMU的方式
pmu_set_pin_mux (GPIO_PORT_D, GPIO_BIT_6, PMU_PIN_FUNC_GPIO); pmu_set_pin_to_PMU(GPIO_PORT_D, BIT(6)); pmu_set_pin_dir (GPIO_PORT_D, BIT(6),GPIO_DIR_IN); pmu_set_pin_pull (GPIO_PORT_D, BIT(6), GPIO_PULL_UP);if(pmu_get_gpio_value(GPIO_PORT_D, GPIO_BIT_6)==0)
{
co_delay_100us(1500);
if(pmu_get_gpio_value(GPIO_PORT_D, GPIO_BIT_6)==0)
{
co_printf("SEND \r\n");
timer_send_task(NULL);
}
}
-
@mars 在 PE0初始化上拉输入 中说:
pmu_get_gpio_value(GPIO_PORT_D, GPIO_BIT_6)==0
PMU方式,确实可以!默认也是高电平了。普通IO方式为什么不行呢?
-
@liurenwoxing 在 PE0初始化上拉输入 中说:
__SYSTEM_GPIO_CLK_ENABLE();
GPIO_InitTypeDef GPIO_Handle;
GPIO_Handle.Pin = GPIO_PIN_0;
GPIO_Handle.Mode = GPIO_MODE_INPUT;
GPIO_Handle.Pull = GPIO_PULL_UP;
gpio_init(GPIO_E, &GPIO_Handle);
你的参数写错了

-
此回复已被删除!
-
@mars 在 PE0初始化上拉输入 中说:
GPIO_PULL_UP

GPIO_Handle.Pull = GPIO_PULLUP;
pmu_set_pin_pull (GPIO_PORT_E, BIT(0), GPIO_PULL_UP);
库定义两个上拉枚举,相差一个下斜杠,确实容易弄错,记录一下