关于树莓派Pi3B的GPIO引脚检测输入

关于树莓派Pi3B的GPIO引脚检测输入电平问题,满满的细节干货

最近在测试树莓派GPIO引脚输入。想着外面给GPIO输入高低电平,能让树莓派检测出来。折腾了很久,才解决。现在把自己遇到问题和解决办法记录下来。

官方文档:BCM的数据手册

我们先看树莓派GPIO功能框图:

起初我认为:1.配置好引脚方向为输入方向2.从PinLevelRegs取走电平值就可以了。

后来发现还少了一个重要的操作:

GPPUD寄存器是控制引脚是上拉或者下拉。但是需要与GPPUDCLK寄存器配合使用。需要GPPUDCLK配合时钟线打开。

综上所述,如果要将GPIO0配置成检测输入电平,可以如下编写代码:

*gpfsel0=~(0x7);//GPIO0inputdirection*gppudclk0

=0x1;//AssertGPIO0clockline*gppud=(~0x2);//gpiopulldown*gppud

=0x1;

以上是我遇到的问题,以及解决办法。希望和大家一起交流,同时希望得到大家的指正。

再多说两句,树莓派不是拼性能的设备,拼的是生态+低功耗+低价格。

3b的性能其实也挺不错了,不过还是不适合跑密集计算和图形计算。

再就是树莓派3b的网卡基于usb2.0的,所以带宽很低(网卡),所以不适合做多媒体服务器。

适合什么?满足,低功耗(低性能)的基本都适合。

具体多低?其实3b性能也是很低,比如做个小web服务器还是可以的,跑桌面卡的怀疑人生。

我测我是了一下php,在默认安装wordpress的情况下,响应速度很慢(2-3秒),不建议使用(除非你进行深度cache优化)。

我也测试了Java,由于是字节码程序,性能比php好不少,不过低于go的web程序,再加上java的一大堆框架耗费资源太厉害,抬高了对性能的要求(jdbc的平均毫秒左右,ssh的1-2秒左右)。

我也测试了python的web程序(基于django),由于是解释执行,性能低于java,平均1.5-2.5秒左右。

个人认为,如果用树莓派做web服务器,最好用go语言来写,机器码执行速度优势还是大。

如果是对性能要求不高的应用,什么语言的程序都没什么问题。

我目前主要用来做私人github服务器(基于gogs)。性能刚刚好基本满足(平均不到毫秒的响应速度),3-4个人同时访问问题不大,应该能基本满足10来个人的正常使用。

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我也能领取哦///




转载请注明:http://www.aierlanlan.com/cyrz/5334.html