【问题标题】:Can I read a valid signal from an output pin of GPIO?我可以从 GPIO 的输出引脚读取有效信号吗?
【发布时间】:2016-04-13 08:19:21
【问题描述】:

根据Wikipedia

GPIO 功能可能包括:

  • GPIO 引脚可配置为输入或输出

  • GPIO 引脚可以启用/禁用

  • 输入值是可读的(通常高=1,低=0)

  • 输出值是可写/可读的

据我了解,如果为输入设置了引脚,则无法写入。换句话说,将值写入输入引脚是无效的。但是,我不确定输出引脚是否可读。

例如,给定一个编号为 8 的引脚,在我调用函数 write_pin_value(pin_8, 1); 后,函数调用 read_pin_value(pin_8) 是否总是返回值 1?

【问题讨论】:

    标签: c io embedded processor instruction-set


    【解决方案1】:

    您应该查看您使用的目标芯片的数据表,因为不同的 IC 可能具有不同的输入/输出缓冲器结构。通常文档包含 IO 端口的完整描述。

    一般来说,固件可以在任何状态下读写引脚,不管是输入还是输出模式。但是向输入引脚写入值不会影响其物理状态。同样,如果读取输出引脚,您可能会收到破坏的结果。

    在使用数模外设之前,您不能将值 0x23 写入引脚,因为引脚的寄存器是 1 位长。

    【讨论】:

      【解决方案2】:

      这取决于 MCU。其中一些具有输出锁存器,可为您提供真实输出状态的反馈。您可以阅读它以确保您的输出设置为正确的状态。

      这在某些 MCU 中也很有用,您可以在其中反转输出值(正常高、正常低)并且您可以检查实际输出状态是否符合预期。

      【讨论】:

      • 嗨,LP,我是电子产品的新手。这是 Rsapberry Pi 的 GPIO 电路规范。 [mosaic-industries.com/embedded-systems/microcontroller-projects/…你能确定Raspberry Pi的GPIO在写入输出引脚后是否可以读取它吗?提前致谢。
      • @xmllmx 您始终可以读取 gpio 端口。配置为输出的引脚将以您上次设置的值或默认值读取。在您的特定情况下,您没有读取输出真实状态的功能,而是逻辑状态。
      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多