主题:[求助]ESM8400设置GPIO不生效,如何解决? 共有236人关注过本帖 |
---|
![]() zhangsan |
1楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
[求助]ESM8400设置GPIO不生效,如何解决? ![]() GPIO4没有被占用,代码: int gpio_fd = 0; uint32_t state = 0xffffffff; gpio_fd = gpio_open(); gpio_outdisable(gpio_fd, 0xffffffff); state = 0xffffffff; gpio_pinstate(gpio_fd, &state); printf("%x\n", state); //ff1c3def gpio_outenable(gpio_fd, 4); gpio_outset(gpio_fd, 4);
gpio_outdisable(gpio_fd, 0xffffffff); state = 0xffffffff; gpio_pinstate(gpio_fd, &state); printf("%x\n", state); //ff1c3def |
单帖管理 | 引用 | 回复 ![]() |
![]() hzc |
2楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,我看代码中是将GPIO4设置为输出后,再设置为输入读取电平。这里将GPIO4设置为输入后,管脚就没有输出能力了,读取到的值只和GPIO4外接的电平有关系,和之前设置的输出没有任何关系了。比如GPIO4悬空的话,那么读取出来的值应该总是1,因为内部有一个47K左右的弱上拉。 [此贴子已经被作者于2025/9/26 17:08:22编辑过]
|
单帖管理 | 引用 | 回复 ![]() |
![]() zhangsan |
3楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 如果需要设置GPIO4为高电平需要怎么设置呢?只是先调用gpio_outenable函数再调用gpio_outset函数好像不能拉高GPIO4 |
单帖管理 | 引用 | 回复 ![]() |
![]() hzc |
4楼 信息 | 搜索 | 邮箱 |
![]() ![]() ![]() ![]() |
![]() 你好,GPIO4设置为输出高电平的话,就是先调用gpio_outenable,然后再调用gpio_outset。我这边做了测试,通过示波器查看,通过这两个函数是可以将GPIO4设置为输出高电平的。 |
单帖管理 | 引用 | 回复 ![]() |