找回密码
 注册
关于网站域名变更的通知
查看: 230|回复: 1
打印 上一主题 下一主题

介绍一下Linux内核驱动之gpio子系统的使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-10-10 14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
$ X! h! m2 s) l
一 概述# u* t5 X& T* y8 y

5 j% j1 U: g9 v8 f5 ilinux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的7 r4 Q  P0 V% D5 k

9 M8 {+ `. ]6 D* F6 f2 P二 内核中gpio的使用7 N! d# ^2 s1 N% M

7 ?* `& s/ J; V& C# H2 J6 O1 测试gpio端口是否合法& {) |+ m) [. D% `5 W
1 ?# ?4 m/ b" D# g
int gpio_is_valid(int number);
" Q- g% J. l3 U( m5 Z4 _, K* g+ U2 t3 S, d; o, V- d. p$ x
2 申请某个gpio端口当然在申请之前必须配置该gpio端口的pinmux,否则会导致后面的操作失败或者无效
* C4 p6 [8 `  b4 E% v8 p6 M3 Y, P
0 d- f) {& |$ P& z2 ]int gpio_request(unsigned gpio, const char *label)
! C3 h& q# |5 J3 T) p) m4 a7 j
6 F& ~0 b* r) M0 x) \8 _8 n3 标记gpio的使用方向包括输入还是输出
. r8 a5 o4 J% Q+ H- W2 F( X; Z$ C( V
& ~3 B- r- ]; z( D3 H# E" R/*成功返回零失败返回负的错误值*/
$ _( F3 d- Y" R* j
) D. F6 f8 R( nint gpio_direction_input(unsigned gpio);1 Z; h/ A3 j& i' q' [8 N, {

& F3 S( |* y+ D1 h5 S% x. V: Gint gpio_direction_output(unsigned gpio, int value);3 Z5 h3 j5 C; Y/ ]

7 Z2 f3 F3 X! t7 n. J8 D4 ~4 获得gpio引脚的值和设置gpio引脚的值(对于输出)
3 {! q* p& i0 A3 g" f0 x; |  g' F% x- }, u  C
int gpio_get_value(unsigned gpio);* e) L0 f7 c9 x' U; N
1 V( P$ j. v% j! O4 _+ }# Y
void gpio_set_value(unsigned gpio, int value);
; b) x: M+ x* P8 X3 [% n- K' ]! |, z1 r; H7 f) ~9 t
5 gpio当作中断口使用
1 y0 Y1 I! o& s8 h( @3 K& b
8 u' j3 F) m( S
游客,如果您要查看本帖隐藏内容请回复
% g' ~' Q/ r' g
/ O4 z3 ?4 G1 z& r5 |' M/ o

3 Y1 ]9 ?3 m1 m5 N% f2 n$ Z3 T, G4 K7 k5 q

该用户从未签到

2#
发表于 2019-10-10 22:48 | 只看该作者
看看Linux内核驱动之gpio子系统的使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 08:36 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表