gpio IOCTL控制

之前工作的时候,linux下用过GPIO的,无非就是配置模式,set/get value ,或者是gpio中断之类的,用户态配置GPIO主要是两种方式:用户态使用mmap直接将GPIO 地址映射过来,操作地址, 或者 IOCTL发命令给内核,内核来控制,最近半年都在写单片机的代码。时间久了有点忘了,最近使用都是偷懒直接使用了/sys下的设备,通过
  system("echo \"out\" > /sys/class/gpio/gpio47/direction"); 这种方法去配置GPIO ,程序跑起来会经常出现sh: write error: Device or resource busy 这种问题,所以感觉还是使用IOCTL来管理GPIO 口,网上找了找,http://blog.csdn.net/oyhb_1992/article/details/77227276 大概参照这位大侠的用法。。先记下来,改改代码,再继续编辑

时间: 2024-10-15 05:43:57

gpio IOCTL控制的相关文章

BeagleBone Black板第七课:GPIO编程控制

BBB板第七课:GPIO编程控制 在一上课我们通过IO函数做了简单的GPIO端口输出高低电平输出,实现对一个LED指示灯的点亮和关闭控制,本节将通过完整的C++程序,实现第四课Shell脚本的全部功能,实现两个LED指示灯的交替闪亮. 直接通过进入功能程序 1.实现echo 44 > export 打开端口功能 上一课简单测试中,通过手工在BBB板终端模式下打开gpio44端口可通过以下程序实现: #include <stdio.h> #define GPIO_DIR "/sy

[ZigBee] 3、ZigBee基础实验——GPIO输出控制实验-控制Led亮灭

1.CC2530的IO口概述 CC2530芯片有21 个数字输入/输出引脚,可以配置为通用数字I/O 或外设I/O 信号,配置为连接到ADC.定时器或USART外设.这些I/O 口的用途可以通过一系列寄存器配置,由用户软件加以实现. I/O 端口具备如下重要特性:    ?? 21 个数字I/O 引脚 ?? 可以配置为通用I/O 或外部设备I/O ?? 输入口具备上拉或下拉能力 ?? 具有外部中断能力. 21 个I/O 引脚都可以用作于外部中断源输入口.因此如果需要外部设备可以产生中断.外部中断

树莓派GPIO输入输出--控制LED

GPIO引脚有两种模式BOARD和BCM. 1.GPIO输出控制LED 效果图: 代码: (1)使用BOARD模式,GPIO.setmode(GPIO.BOARD).35号引脚在BCM下是GPIO19 (2)将引脚35设置为输出模式,GPIO.setup(35,GPIO.OUT) (3)对GPIO35引脚输出高电平,也可以为GPIO.HIGH 2.GPIO接口获取输入信号 效果图: 电路图 当开关断开时,GPIO23是高点平获取到的输入信号是Ture.当开关按下时GPIO23为接地,获取到的信号

OpenWRT GPIO口控制 WLED

Linux系统下GPIO系统架构介绍 关于这个GPIO很久以前一直以为很简单,但是,当你需要给一个特定的系统,搞这些GPIO的时候,你会发现,事实并不是如此,比如,mt7620n. GPIO#72是控制WLED -> WLAN LED. GPIO#40~44是控制WAN, LANLED. GPIO#1是控制Reset 这些东西以为自己写一个GPIO driver就完成了,其实没有那么简单,光是这个小驱动你怎么编译都比较麻烦,所以还是乖乖的学习OpenWRT的系统架构吧. 这里要说道重点dts.这

Win10 IoT C#开发 3 - GPIO Pin 控制发光二极管

原文:Win10 IoT C#开发 3 - GPIO Pin 控制发光二极管 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一篇文章我们详细介绍了Raspberry安装Win 10 IoT Core系统及搭建开发环境的过程,如果还不熟悉安装搭建过程可以参考  Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境(htt

Linux设备驱动之Ioctl控制

大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力. 一.在用户空间,使用ioctl系统调用来控制设备,原型如下 int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/ 用户程序所作的只是通过命令码告诉驱动程序它想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情. 二.驱动ioctl方法: int (*ioctl) (struct in

Win10 IoT C#开发 2 - GPIO Pin 控制发光二极管

Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一篇文章我们详细介绍了Raspberry安装Win 10 IoT Core系统及搭建开发环境的过程,如果还不熟悉安装搭建过程可以参考  Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境(http://www.cnblogs.com/cloudtech/p/5562120

(10)用树莓派B+的GPIO接口控制发光二极管闪烁

从本篇开始,将逐步学习和分享树莓派GPIO相关操作,由于本人也是这方面的小白,关于接口.跳线.面包板.电流电压之类的叙述,可能有不准确的地方,还请大家仅将本系列文章作为入门读物. 本文需要的一些元件:母对公杜邦线N条,面包板1块,暂不需要面包板外接电源,发光二极管(电压2V-3.3V),电阻约400欧1个. 必须要了解的知识:根据树莓派官方文档的描述(见https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/REA

Linux设备驱动之Ioctl控制【转】

转自:http://www.cnblogs.com/geneil/archive/2011/12/04/2275372.html 大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力. 一.在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,...);/*fd:文件描述符cmd:控制命令...:可选参数:插入*argp,具体内容依赖于cmd*/ 用户程序所作的只是通过命令码告诉驱动程序它想做什么,至于怎么