gpio_direction_output 和 gpio_set_value之间的关系

简介: 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_value这个函数直接去掉不用,是否可以,显然是可以的。 但是为什么系统还要用呢, 我个人分析是, 系统开发人员在要结合这两者来使用,以便提高效率。 一般某个端口设置好了输入与输出模式后,最好不要经常变动。 首先要调用gpio_direction_output(),以后要设置高低电平时,直接使用gpio_set_value()就可以了,这样可以省却再 次调用设置输出模式的操作,从而提高运行效率!

目录
相关文章
|
20天前
|
芯片
USB Type-C引脚解析 && CC、DFP、UFP、DRP用途解析
USB Type-C引脚解析 && CC、DFP、UFP、DRP用途解析
|
9月前
|
前端开发 芯片
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
【芯片前端】关于set_input_delay/set_output_delay慢信号约束到快时钟的思考
166 0
|
11月前
|
芯片
Constant frequency mode(恒频模式)和Burst mode(点放模式)
Constant frequency mode是指恒频模式或者连续模式,Burst mode是指点放模式或者突发模式。这两个概念在DC-DC开关电源中比较常见,大家都了解开关电源是通过PWM信号控制开关管的通断来进行供电。恒频模式指PWM信号频率保持不变,开关电源一直在工作,这样电压比较稳定。点放模式下,开关管不是周期性开关的,当在轻负载状态下(一般是设备进入低功耗休眠模式),当电压低于预设电压时,导通一次开关管,这样就比较省电。
215 0
|
11月前
PADS Logic原理图添加总线
原理图总线在连线很多的时候或者是连线信号可以归类的时候(比如存储器的数据信号),很适合使用,可以使原理图变得简洁,提高可读性,下面我们就看一下如何在原理图中添加总线。
422 0
|
11月前
|
芯片
Bust Mode(降压模式)和Boost Mode(升压模式)
升压与降压一般是指电源电路的工作模式,有些电源IC可以同时支持升压和降压模式。
203 0
|
11月前
|
网络协议 BI 调度
NR PRACH(五) type1 RA(4-step)基本过程
无线通信,最重要的前提是建立接收端和发射端之间的时间同步。
关于OLED移植出现Symbol oled_pow multiply defined
关于OLED移植出现Symbol oled_pow multiply defined
248 0
|
芯片 C++ 异构计算
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
1202 0
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
【UCIe】UCIe Data to Clock
【UCIe】UCIe Data to Clock
326 0
【UCIe】UCIe Data to Clock
|
异构计算
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)
381 0
Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X53_Y21_N14)