gpio_direction_output vs gpio_set_value之间的使用关系

linux设备驱动程序——gpio控制 在gpio初始化的函数中添加这个接口,在加载完成之后查看/sys/class/gpio/目录下是否有相应的gpio$num(这里是gpio26)文件(需要注意的是,在上例中,当用户程序打开设备时才进行gpio的初始化,关闭文件时释放gpio的资源,所以需要打开文件再操作)。当用户程序执行时,用户程序一直获取用户的输入,根据用户输入"on"或者"off",然后将其写入设备文件,触发系统调用,设备文件根据设备号找到内核中相应的file_operation结构体,相应write函数被调用,执行相应的点灯操作。 阅读详情

在linux驱动中常常会碰到gpio_set_value(port_num,0/1)或gpio_direction_output (port_num,0/1)

  这两者有什么关系呢

gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了!

而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。

 因此,有人也许就会建议,把gpio_set_value这个函数直接去掉不用,是否可以,显然是可以的。

 但是为什么系统还要用呢,

 我个人分析是,

    系统开发人员在要结合这两者来使用,以便提高效率。

   一般某个端口设置好了输入与输出模式后,最好不要经常变动。

   首先要调用gpio_direction_output(),以后要设置高低电平时,直接使用gpio_set_value()就可以了,这样可以省却再次调用设置输出模式的操作,从而提高运行效率!

海思SS528 vs Hi3516 GPIO寄存器对比:3点关键差异与移植避坑指南 本文深入对比海思SS528与Hi3516的GPIO寄存器设计差异,重点分析GPIO_DATA寄存器访问机制、复用寄存器配置和中断处理等3大核心差异点,并提供跨平台移植的实战解决方案。通过具体案例演示如何规避常见陷阱,帮助开发者高效完成嵌入式系统移植,提升代码兼容性和操作性能。 阅读详情

相关推荐

Linux GPIO子系统详解:从设备树配置到驱动开发实战

GPIO(通用输入输出)是嵌入式系统与外部世界交互的基础接口,其核心原理在于通过数字信号控制硬件引脚的电平状态。在复杂的Linux系统中,GPIO子系统通过统一的管理和抽象层,将物理引脚转化为内核可安全调度的标准资源,实现了驱动与硬件的解耦,提升了代码的可移植性和系统的稳定性。这一机制的技术价值在于支持引脚功能动态复用、避免资源冲突,并为调试提供了统一视图。其典型应用场景包括控制LED、读取按键、管理风扇等基础外设。本文聚焦于Linux GPIO子系统的架构解析,深入探讨了基于设备树的现代配置方法、推荐使用

weixin_33824363的博客 408

linux驱动开发学习笔记十六:gpio相关OF函数和子系统API函数

一、gpio相关OF函数 我们在设备节点中会定义了一个名为“gpios”的属性,当然不一定是“gpios”,你可以自定义。gpios 属性描述了 test 这个设备所使用的 GPIO。在驱动程序中需要读取 gpios 属性内容,Linux 内核提供了几个与 GPIO 有关的 OF 函数,常用的几个 OF 函数如下所示: of_gpio_named_count 函数 of_gpio_named_...

耐心的小黑的博客 5990

嵌入式Linux入门:通过Sysfs GPIO直接操作点亮LED的完整实践指南

GPIO(通用输入输出)是嵌入式系统中最基础且核心的硬件接口之一,它允许处理器通过数字信号直接控制外部设备或读取外部状态。其工作原理是通过配置特定引脚为输入或输出模式,并设置相应寄存器电平来实现控制。掌握GPIO操作对于理解嵌入式系统硬件交互至关重要,是驱动开发的基石。在Linux系统中,GPIO子系统提供了标准化的管理框架,而Sysfs文件系统则暴露了用户空间直接访问GPIO的接口,这为快速硬件验证和原型开发提供了便利。通过直接操作GPIO编号,开发者可以绕过复杂驱动框架,直观理解从用户空间指令到硬件引脚

weixin_30564785的博客 481

使用gpio_direction_output()无法设置GPIO原因分析

3、通过逻辑分析仪抓到的波形分析可以看到,我们的driver是有一段时间把这个GPIO拉高的动作的,但是不久之后这个IO后就有一段很长的拉低拉高的波形,这个波形很像数据传输的波形,最后IO口被拉低,然后我们有理由怀疑这个IO口是和控制器冲突了,通过查看这个IO口可以知道GPIO3_D7在RK3399芯片中是I2S0控制器DATA0输出引脚。echo 1 > /sys/class/gpio/gpio127/value #设置GPIO3_D7输出高电平。linux 应用层操作GPIO。...

qq_27809619的博客 6196

TCA9535 vs PCA9535 vs AW9535:3款16位I2C GPIO扩展器对比评测

本文深入对比了TCA9535、PCA9535和AW9535三款16位I2C GPIO扩展器,从电气特性、功能架构到实际应用表现进行全面分析。TCA9535在通信稳定性方面表现最佳,AW9535在驱动能力和温度范围上具有优势,而PCA9535则内置上拉电阻简化设计。文章为工程师提供了详细的选型建议和常见问题解决方案,帮助优化嵌入式系统设计。

343

嵌入式Linux下GPIO模拟通信协议实战:以ZYNQ平台模拟MDIO访问PHY寄存器为例

本文详细介绍了在ZYNQ平台上通过GPIO模拟MDIO协议访问PHY寄存器的实战方法。内容包括硬件架构设计、MDIO协议状态机实现、完整协议栈开发以及调试优化技巧,适用于嵌入式Linux系统中硬件资源受限的场景。该方法也可扩展应用于I2C、SPI等通信协议的模拟实现。

流云 559

sysfs vs libgpiod:Linux GPIO 用户态操作 2 种方案对比与迁移指南

本文深入对比了Linux系统中sysfs与libgpiod两种GPIO用户态操作方案,详细分析其架构设计、性能指标和功能支持差异。针对从传统sysfs迁移到现代libgpiod的需求,提供实战代码示例和最佳实践指南,帮助开发者高效完成过渡,提升GPIO操作性能和功能完整性。

weixin_33831673的博客 342

变频器相关使用

想用变频器传动带有改善功率因数用电容器的电机,电机却不动,原因是:变频器的电流流入改善功率因数用的电容器,由于其充电电流造成变频器过电流(OCT),所以不能起动,作为对策,请将电容器拆除后运转,甚至改善功率因数,在变频器的输入侧接入AC电抗器是有效的。一般电机利用装在轴上的外扇或转子端环上的叶片进行冷却,若速度降低则冷却效果下降,因而不能承受与高速运转相同的发热,必须降低在低速下的负载转矩,或采用容量大的变频器与电机组合,或采用专用电机。电流型是将电流源的直流变换为交流的变频器,其直流回路滤波石电感。

wangjie36的博客 3958

GPIO极限翻转速度小测试(TODO)

(TODO)

fanged的专栏 427

Linux驱动:gpio_direction_output和gpio_set_value之间的使用关系

在linux驱动中常常会碰到gpio_set_value(port_num, 0/1)或gpio_direction_output(port_num, 0/1) 这两者有什么关系呢gpio_set_value(port_num, 0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了!而gpio_direction_output(port_num, 0/1),在某个GPIO口写上某个值之后,还会把这个端口设置为输出模式。 因此,有人也许就会建议,把gpio_set_v

weixin_44498318的博客 2051

从理论到实践:TRL去嵌入校准在国产矢量网络分析仪上的应用全解析

本文全面解析了TRL去嵌入校准技术在国产矢量网络分析仪上的应用实践,从核心算法到工程实现。详细介绍了TRL校准的数学原理、国产VNA的程控接口开发、校准件质量评估及测量不确定度控制策略,帮助工程师掌握高频器件测量的关键技术。

tech5的博客 1011

Linux驱动避坑指南:用DS18B20驱动详解设备树配置与GPIO申请的正确姿势

本文详细解析了Linux下DS18B20温度传感器驱动的开发要点,重点介绍了设备树配置的常见陷阱、GPIO资源管理的两种方式对比,以及驱动probe函数的健壮性设计。通过实战案例和代码示例,帮助开发者掌握单总线协议实现细节和驱动调试技巧,避免从单片机转向Linux驱动开发时的常见误区。

weixin_30466039的博客 327

脑机接口(BCI)从原理到开发实战 01|意念控制真的来了?一文看懂脑机接口的技术革命

类型定义典型应用主动式用户主动产生特定思维模式来控制设备运动想象(想象左手/右手移动)反应式用户被动接受外部刺激,系统检测大脑反应P300拼写器、SSVEP(稳态视觉诱发电位)被动式系统监测用户自发脑状态,不要求主动控制疲劳监测、情绪识别、注意力评估本系列后续文章将重点围绕主动式(运动想象)和反应式(P300/SSVEP)展开实战。脑机接口,这个曾经只存在于科幻中的概念,正在政策、资本、技术的三重驱动下,加速从实验室走向产业落地。2026年,注定是脑机接口发展史上浓墨重彩的一年。

小明的博客 1429
上一篇: Linux加载DTS设备节点的过程
下一篇: linux 2.6.23时钟中断与调度分析
计算机与认知
博客等级 码龄14年 31粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值