我是靠谱客的博主 阔达冥王星,最近开发中收集的这篇文章主要介绍GPIO的一些标识和用法一、gpio的标识用法二、GPIO的复用三、gpio的内部上拉下拉,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 一、gpio的标识用法
- 二、GPIO的复用
- 三、gpio的内部上拉下拉
一、gpio的标识用法
我们在dts文件里面经常可以看到这些词语
比如:
enable-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
这种就代表这个gpio高电平有效,可以通过测量gpio的状态来判断gpio是否有效
IRQ_TYPE_NONE //默认值,无定义中断触发类型
IRQ_TYPE_EDGE_RISING //上升沿触发
IRQ_TYPE_EDGE_FALLING //下降沿触发
IRQ_TYPE_EDGE_BOTH //上升沿和下降沿都触发
IRQ_TYPE_LEVEL_HIGH //高电平触发
IRQ_TYPE_LEVEL_LOW //低电平触发
二、GPIO的复用
有时候我们的gpio可能不是一个单独的gpio还可能是i2c的上的使用
pinctrl-names 定义了状态名称列表: default (i2c 功能) 和 gpio 两种状态。
pinctrl-0 定义了状态 0 (即 default)时需要设置的 pinctrl: &i2c4_xfer
pinctrl-1 定义了状态 1 (即 gpio)时需要设置的 pinctrl: &i2c4_gpio
pinctrl {
i2c4{
i2c4_xfer: i2c4-xfer{
rockchip,pins = <1 12 RK_FUNC_1 &pcfg_pull_none>, <1 11 RK_FUNC_1 &pcfg_pull_none>;
};
i2c4_gpio: i2c4-gpio {
rockchip,pins = <1 12 RK_FUNC_GPIO &pcfg_pull_none>, <1 11 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
可以看出,如果gpio用于i2c的画,那么就是RK_FUNC_1.
如果是用于GPIO的话,就是RK_FUNC_GPIO,当然这些都有对应的返回值,如下
#define RK_FUNC_GPIO 0
#define RK_FUNC_1 1
#define RK_FUNC_2 2
#define RK_FUNC_3 3
#define RK_FUNC_4 4
#define RK_FUNC_5 5
#define RK_FUNC_6 6
#define RK_FUNC_7 7
目前我自己也只遇到FUNC_1。所以就只能说道这里。
还有就是gpio的计算:
https://blog.csdn.net/weixin_51178981/article/details/121455389?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163815676416780269811864%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163815676416780269811864&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-121455389.first_rank_v2_pc_rank_v29&utm_term=android%E7%9A%84%E5%BA%95%E5%B1%82%E9%A9%B1%E5%8A%A8%E8%B0%83%E8%AF%95%E5%BF%83%E5%BE%97&spm=1018.2226.3001.4187
可以参考下这篇文章里面的计算方法。
三、gpio的内部上拉下拉
&pinctrl {
cam {
cam_clkout0: cam-clkout0 {
rockchip,pins =
/* cam_clkout0 */
<4 RK_PC0 RK_FUNC_1 &pcfg_pull_none>,
<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>,
};
};
常见的就是这几种,代表着内部浮空(pcfg_pull_none),内部上拉(pcfg_pull_up),内部下拉(pcfg_pull_down);一般来说浮空用的比较多,因为gpio的状态是会改变的,但是也有时候也需要强制上拉下拉。
最后
以上就是阔达冥王星为你收集整理的GPIO的一些标识和用法一、gpio的标识用法二、GPIO的复用三、gpio的内部上拉下拉的全部内容,希望文章能够帮你解决GPIO的一些标识和用法一、gpio的标识用法二、GPIO的复用三、gpio的内部上拉下拉所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复