zoukankan      html  css  js  c++  java
  • 《设备树 —— 设备树配置GPIO时,GPIO_ACTIVE_HIGH和GPIO_ACTIVE_LOW的作用》

      正常情况下,我们需要一个gpio口控制灯,我们认为灯打开就是active状态。对于一个程序员来说,我们可以封装一个函数,写1就是打开灯,写0就是关灯。

      但是对于硬件来说,变化的是gpio口的电平状态。如果gpio输出高电平灯亮,那么这就是高有效。如果硬件设计是gpio输出低电平灯亮,那么就是低有效。对于一个软件工程师来说,我们的期望是写1就是亮灯,写0就是关灯。

      我可不管硬件工程师是怎么设计的。我们可以认为dts是描述具体的硬件。因此对于驱动来说,硬件的这种变化,只需要修改dts即可。软件不用任何修改。

      大概知道是将硬件逻辑隔离开来的意思。

      gpio_set_value(led_dev.led_no,0);
    
      gpio_set_value(led_dev.led_no,1);
    
      gpio_set_value 设置的是逻辑电平,1 有效 0 无效
    
      如果GPIO_ACTIVE_LOW  那么 1 有效 就是低电平 0 无效 就是高电平 (物理电平)
    
      如果GPIO_ACTIVE_HIGH  那么 1 有效 就是高电平 0 无效 就是低电平 (物理电平)

      总结一下:

      在设备树配置GPIO时设置的有效电平指的是实际电路的电平。例如一个LED,拉低点亮。那么在配置设备树的时候这个GPIO就应该设置为GPIO_ACTIVE_LOW。

      我们在应用层设置GPIO都是希望是高电平点亮,那么这个就可以理解为逻辑电平。那么我们应用程序就只管设置为高电平就行了。

      底层程序会根据我们的逻辑电平去做适配。这样就实现上层只管认为就是高电平点亮,不用管底层是什么电平点亮。

  • 相关阅读:
    《网络攻防第四周作业》
    《网络攻防第三周作业》20179313
    15.javaweb XML详解教程
    小程序新功能:直接进入内嵌网页!
    为什么要创业?听听扎克伯格怎么说
    面试官:“还有什么问题问我吗?”我...
    双十一为何规则复杂,套路多多
    如何设置电信光猫?图解手把手教你(超级详细)
    14.javaweb AJAX技术详解
    android黑科技系列——自动注入代码工具icodetools
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/15505317.html
Copyright © 2011-2022 走看看