RPI学习--wiringPi_setups
reference: http://wiringpi.com/reference/setup/
There are four ways to initialise wiringPi.
wiringPi库提供了四种方法(函数)用来初始化wiringPi。
- int wiringPiSetup (void) ;
- int wiringPiSetupGpio (void) ;
- int wiringPiSetupPhys (void) ;
- int wiringPiSetupSys (void) ;
One of the setup functions must be called at the start of your program or your program will fail to work correctly. You may experience symptoms from it simply not working to segfaults and timing issues.
当你编程的时候必须在开头调用这四个设置函数中的一个,否则你的程序将运行不了。你可能经历过像简单的不能工作,段错误,定时问题这样的一些症状。
Note: wiringPi version 1 returned an error code if these functions failed for whatever reason. Version 2 returns always returns zero. After discussions and inspection of many programs written by users of wiringPi and observing that many people don’t bother checking the return code, I took the stance that should one of the wiringPi setup functions fail, then it would be considered a fatal program fault and the program execution will be terminated at that point with an error message printed on the terminal.
注意:对于wiringPi 的V1版本,如果这些设置函数调用失败,不管什么原因,它将会返回一个错误代码。
- If you want to restore the v1 behaviour, then you need to set the environment variable: WIRINGPI_CODES (to any value, it just needs to exist)
The differences between the setup functions are as follows:
- wiringPiSetup (void) ;
This initialises wiringPi and assumes that the calling program is going to be using thewiringPi pin numbering scheme. This is a simplified numbering scheme which provides a mapping from virtual pin numbers 0 through 16 to the real underlying Broadcom GPIO pin numbers. See the pins page for a table which maps the wiringPi pin number to the Broadcom GPIO pin number to the physical location on the edge connector.
This function needs to be called with root privileges.
- wiringPiSetupGpio (void) ;
This is identical to above, however it allows the calling programs to use the Broadcom GPIO pin numbers directly with no re-mapping.
As above, this function needs to be called with root privileges, and note that some pins are different from revision 1 to revision 2 boards.
- wiringPiSetupPhys (void) ;
Identical to above, however it allows the calling programs to use the physical pin numberson the P1 connector only.
As above, this function needs to be called with root priviliges.
- wiringPiSetupSys (void) ;
This initialises wiringPi but uses the /sys/class/gpio interface rather than accessing the hardware directly. This can be called as a non-root user provided the GPIO pins have been exported before-hand using the gpio program. Pin numbering in this mode is the native Broadcom GPIO numbers – the same as wiringPiSetupGpio() above, so be aware of the differences between Rev 1 and Rev 2 boards.
Note: In this mode you can only use the pins which have been exported via the /sys/class/gpio interface before you run your program. You can do this in a separate shell-script, or by using the system() function from inside your program to call the gpioprogram.
Also note that some functions have no effect when using this mode as they’re not currently possible to action unless called with root privileges. (although you can use system() to callgpio to set/change modes if needed)
RPI学习--wiringPi_setups的更多相关文章
- RPI学习--wiringpi_API
reference: https://projects.drogon.net/raspberry-pi/wiringpi/functions/ Functions (API) Some of the ...
- RPI学习--WebCam_mplayer
1,安装mplayer $ sudo apt-get install mplayer 2,运行 $ sudo mplayer tv:// 有时会秀逗,绿屏,多试几下就好了,情况未知
- RPI学习--环境搭建_无线网络的连接
这里不讨论无线网卡的驱动问题,假设内核已经支持了该网卡. 发现命令行下添加无线网络比较麻烦,于是利用图形桌面的工具(WiFi Config)先配置好,在回到字符终端,发现网络已经配置好了 查看内网ip ...
- RPI学习--环境搭建_默认启动桌面/终端修改
参见:http://elinux.org/RPi_raspi-config 首次运行Raspbian会自动进入设置,往后也可以重新进入设置: $ sudo raspi-config 选项3 Enabl ...
- RPI学习--webcam_用fswebcam抓取图片
若 ls /dev 下没有video0,可以参考http://www.cnblogs.com/skynext/p/3644873.html,更新firmware 1,安装fswebcam: sudo ...
- RPI学习--环境搭建_更新firmware
(用以解决USB摄像头不识别的状况) rpi-update是老外开发的一个更新树莓派firmware的工具 $ sudo apt-get update $ sudo apt-get install ...
- RPI学习--环境搭建_刷卡+wiringPi库安装
1,镜像地址 http://www.raspberrypi.org/downloads/ 2,Windows下刷写工具 Win32 Disk Imager 3,安装wiringPi库 (这里在连网状态 ...
- RPI学习--环境搭建_串口连接
有两种, 一种是通过MAX2323芯片连接的串口,要接VCC为芯片供电. 另一种是通过PL2302芯片连接的USB,可不接VCC,用电脑USB口为芯片供电. 下面以通过MAX2323方式为例. 1,V ...
- nanopi NEO2 学习笔记 3:python 安装 RPi.GPIO
如果我要用python控制NEO2的各种引脚,i2c 或 spi ,RPi.GPIO模块是个非常好的选择 这个第三方模块是来自树莓派的,好像友善之臂的工程师稍作修改移植到了NEO2上,就放在 /roo ...
随机推荐
- 转:Teach Yourself Programming in Ten Years——用十年教会自己编程
转自:http://blog.csdn.net/UndeadWraith/article/details/6140455 作者:Peter Norvig 译者:刘海粟 本文原文为:http://nor ...
- Sqlserver_视图
SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 您可 ...
- python操作mongodb之六自定义类型存储
from pymongo.mongo_client import MongoClient client=MongoClient('192.168.30.252',27017) client=drop_ ...
- linux下创建管理员组 使用 su - 命令
通常情况下,用户通过执行“su -”命令.输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置.但是,为了更进一步加强系统的安全性,有必要建立一个管理员的组,只允许这个组的用户来 ...
- SQL实现数组的功能
今天在工作遇到了一个问题,需要往表中添加数量不小而且没有规律的的数据.思考后我想到了使用高级语言中的数组功能解决. 由于SQL Server并没有数组类型,ANSI SQL-92标准中并没有任何有关数 ...
- Mybatis学习(壹)
一.Mybatis的引言 1.Mybatis框架概念:是数据库持久层的框架,对数据库的访问和操作.Mybatis对JDBC的封装,Mybatis替换JDBC开发,解决DAO中的通用问题. 2.JDBC ...
- Android Service与Thread的区别
Android Service,后台,Android的后台就是指,它的运行是完全不依赖UI的.即使Activity被销毁,或者程序被关闭,只要进程还在,Service就可以继续运行.比如说一些应用程序 ...
- 终端执行python shell的方法
假设有一个Py文件,放在下PycharmProjects/learn下,文件名是 myfile.py. 1.打开终端输入python3进入2.在shell下 输入import sys 回车3.输入 s ...
- js匿名函數
(function($){})(jquery) == (function($){})(jQuery) 实际上是匿名函数 用于存放开发插件的代码 作用(非常有用): 这种写法的最大好处是形成闭包.在(f ...
- Merge k Sorted Lists [LeetCode]
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. S ...