[Linux驱动炼成记]02-用户空间控制GPIO
来源:互联网 发布:网络维护培训 编辑:程序博客网 时间:2024/05/21 07:51
平时调试GPIO的时候,往往是驱动写好控制接口,应用层操作,驱动配置端口->编译->烧录固件->查看现象,这样操作很繁琐,很浪费时间, 直接通过串口登录开发板,通过命令的方式控制端口,这样的方式既方便又快速.
注意: 前提条件是驱动程序中不能初始化该GPIO,否则操作过程中会提示设备忙的状态。
内核配置:
- 登录开发板,确认文件系统中是否有/sys/class/gpio/文件夹,如果没有,重新配置内核:
Device Drivers-> GPIO Support ->/sys/class/gpio/… (sysfs interface)
操作步骤
- 操作目录: sys/class/gpio
- /sys/class/gpio/export: 用于通知系统需要导出控制的GPIO引脚编号
- /sys/class/gpio/unexport: 用于通知系统取消导出
- /sys/class/gpio/gpiochipX: 目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始编号base,寄存器名称,引脚总数 导出一个引脚的操作步骤
- 计算引脚编号
引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数
列举一款芯片计算方式:
#define GPIO_PA(n) (0*32 + n)#define GPIO_PB(n) (1*32 + n)#define GPIO_PC(n) (2*32 + n)#define GPIO_PD(n) (3*32 + n)#define GPIO_PE(n) (4*32 + n)#define GPIO_PF(n) (5*32 + n)PA0 = 0*32+0 = 0PA1 = 0*32+1 = 1
- 通过echo 1 > /sys/class/gpio/export,写入引脚编号,成功之后,会生成gpio1目录
如果没有出现相应的目录,说明此引脚不可导出; 设置端口输入/输出: echo out > /sys/class/gpio/direction, 查看: cat /sys/class/gpio/direction, 支持的参数:
- in/out
- high/low 同时设置方向为输出,并将value设置为相应的1/0
高低电平操作: echo 1 > /sys/class/gpio/value 设置为高电平
学会此方法,平时的工作效率又提升一倍!
参考
- Linux操作GPIO(文件IO方式)
阅读全文
0 0
- [Linux驱动炼成记]02-用户空间控制GPIO
- android 用户空间控制gpio
- Linux GPIO用户空间操作
- Linux内核驱动基础(8)gpio用户空间另一使用案例
- linux 用户空间gpio加载FPGA
- GPIO在用户空间(Sysfs)中的检测与控制
- linux驱动之用户空间驱动
- [Linux应用]通过sysfs在用户空间使用GPIO
- [Linux应用]通过sysfs在用户空间使用GPIO
- [Linux驱动炼成记]01-用户空间操作iic
- Linux用户态控制GPIO--基于友善mini2440
- 用户空间GPIO的调用
- 用mmap写Linux用户空间驱动
- Linux 用户空间i2c 字符驱动
- Linux 用户空间spi读写外围驱动
- 转:linux GPIO驱动
- linux GPIO驱动
- Linux GPIO驱动
- 管理感悟:软件的特性
- Codeforces Round #451 (Div. 2) B
- Codeforces Round #451 (Div. 2) A
- Html Agility Pack (HAP) 应用入门
- 使用set
- [Linux驱动炼成记]02-用户空间控制GPIO
- Dubbo 监控中心的介绍与简易监控中心的安装
- 11.6
- 11.7
- 11.9
- 使用setq
- 11.13
- 11.14
- 《七点三刻》039期 再见金童!卡卡退役/第二架C919首飞成功/省考陆续启动…