树莓派 gpio4 gpio26 gpio21为什么一直是输入,在qt里编程设置成输出也不管用,是不是管脚复用,需要改哪里

hhhmy 45cm2020-04-291388 次点击
收藏 ♥ 感谢
Spoony 小组长 2020-04-29 
你的问题是没法通过这几个脚输出电平?不应该啊。
运行最简单的命令试试看。

https://shumeipai.nxez.com/2016/09/28/rpi-gpio-module-outputs.html
十七 2020-04-30 
我也是,有些gpio口只有输入模式可以用,输出模式用不了,无法输出高低电平。
hhhmy 45cm 2020-04-30 
wiringPiSetupGpio();
pinMode(4,OUTPUT);
pinMode(26,OUTPUT);
pinMode(21,OUTPUT);
这几条指令,我试了3,18,25,0,11,9,6,13,19,16,20这几个gpio口都可以控输出高低电平,这三个控不过去,我在terminal里,echo 4 > export,echo out > direction,echo 1 > value,echo 0 > value,echo 4 > unexport 直接用指令控也不行,gpio4是全局时钟引脚复用功能引脚,也是onewire的默认管脚,我实在不知道改哪里了
Spoony 小组长 2020-04-30 
那就不要用wiringPi
改用系统自带的Python版的 RPi.GPIO 试试
控制方法参考上面的链接
使用 BCM 编码
hhhmy 45cm 2020-04-30 
我按照你说的试了,还是没反应,估计就是管脚复用的问题,设置成输出,gpio readall 还显示是input
Spoony 小组长 2020-04-30 
你的系统是什么版本
hhhmy 45cm 2020-04-30 
cm3+
Spoony 小组长 2020-04-30 
@hhhmy CM3+ 和 GPIO 和标准版顺序是不一样的
参考这个里面的IO排列
https://www.raspberrypi.org/documentation/hardware/computemodule/datasheets/rpi_DATA_CM3plus_1p0.pdf
hhhmy 45cm 2020-04-30 
我用的微雪的Compute Module 3/3 Lite/3+/3+ Lite的外扩板,http://www.waveshare.net/wiki/Compute_Module_PoE_Board,
gpio口引出来的是0-27,和这个gpio排列没有什么关系吧
Spoony 小组长 2020-04-30 
@hhhmy 估计你用的是微雪提供的系统img吧?
hhhmy 45cm 2020-04-30 
hhhmy 45cm 2020-05-20  ♥ 1
最后用这种方式实验成功了
int main(int argc, char **argv)
{‌
if (!bcm2835_init())
return 1;

// Set the pin to be an output
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);

// Blink
while (1)
{‌
bcm2835_gpio_write(PIN, HIGH);
bcm2835_delay(100);

bcm2835_gpio_write(PIN, LOW);
bcm2835_delay(100);
}
bcm2835_close();
return 0;
}

登录注册 后可回复。

这里由以下店铺的技术人员在此免费提供能力范围内的技术支持。

NXEZ 创客商店(淘宝)

排障问题发帖注意事项:
1、请尽可能将故障说明清晰,列明例如使用环境和做了哪些操作和配置等。
2、排障中已经做了哪些尝试,如果能在问题中进行描述将极大提高解决问题的效率。
3、对于需要自身完成知识积累才能解决的问题,请自行通过搜索引擎寻找资料学习。