Linux gpio子系统:gpio_direction_output 与 gpio_set_value的区别

Linux gpio子系统:gpio_direction_output 与 gpio_set_value的区别

背景

最近改驱动程序,看到驱动代码中既有gpio_direction_output也有gpio_set_value

结论

作用相同,但有差别:

  • gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值的同时,把端口设置为输出模式。
  • gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它对此不关心。

建议:系统开发人员在要结合这两者来使用,以便提高效率。 一般某个端口设置好了输入与输出模式后,最好不要经常变动。

  • 首先,调用gpio_direction_output(),设置方向的同时,设置值。
  • 此后,,直接使用gpio_set_value()设置值就可以了,

这样可以省去再次调用设置输出模式的操作,从而提高运行效率!

posted @ 2021-04-08 10:16  schips  阅读(4516)  评论(0编辑  收藏  举报