我对读取输出端口寄存器有疑问。 当我在写入后读取输出端口以验证其是否具有正确的数据时、我的极性配置寄存器4和5将复位。 我必须再次发送寄存器4和5。
我能否知道每次从输出寄存器中读取后、它是否通常要执行的操作、我是否需要再次发送寄存器4和5?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我对读取输出端口寄存器有疑问。 当我在写入后读取输出端口以验证其是否具有正确的数据时、我的极性配置寄存器4和5将复位。 我必须再次发送寄存器4和5。
我能否知道每次从输出寄存器中读取后、它是否通常要执行的操作、我是否需要再次发送寄存器4和5?
您好 Sagar、
"因此、读取输出端口寄存器不会影响输入寄存器?"
没错。
"当我读取输出端口寄存器时、之后如果我读取输入端口寄存器、则读取0xFF 而不是0x00、这意味着极性配置寄存器发生翻转。 您是否曾经历过这种情况、或这种情况是否常见?"
我猜您是在配置寄存器设置为输出时写入输出寄存器。 如果您将所有输出设置为高电平、则所有输入都将看到输出高电平、这将在您读取输入端口时得到反映。 (器件的输出级与器件的输入级相连。) 您可以使用 o-Scope/DMM 探测端口的输出级、并将它们与您读取的输入寄存器进行比较。它们应该匹配。
-Bobby
"我猜您是在配置寄存器设置为输出时写入输出寄存器。 如果您将所有输出设置为高电平、则所有输入都将看到输出高电平、这将在您读取输入端口时得到反映。 (器件的输出级与器件的输入级相连。) 您可以使用 o-Scope/DMM 探测端口的输出级、并将它们与您读取的输入寄存器进行比较。 它们应该匹配。"
因此、端口0-0.7为输入、P 1.0至1.7为输出。 和极性寄存器仅针对 P0.0 -0.7进行写入。
因此、当我写入 P1.0-P1.7、然后我想通过读取同一个输出端口来验证该端口具有相同的值。 因此、读取该值后、即使我正在读取 P1.0至 P1.7、它也不应影响 P0.0 -p0.7上的任何内容。 但有时在读取 P1.0-P1.7后、P0.0 -P0.7上的数据会发生翻转(因为其极性配置设置为0xFF)。 那么、我不应该发生这种情况?
谢谢
。
很抱歉、我等了这么长时间才回复您、直到现在我才看到这条消息。
"因此、当我写入 P1.0-P1.7、然后我想通过读取同一输出端口来验证该值是否相同。 因此、读取该值后、即使我正在读取 P1.0至 P1.7、它也不应影响 P0.0 -p0.7上的任何内容。"
没错。 当您写入和读取 p1.0 - p1.7时、它不会影响另一个端口。
"但有时在读取 P1.0-P1.7后、P0.0 -P0.7上的数据会发生翻转"
由于您没有触摸 P0.0 - p0.7引脚/寄存器、这种情况下的声音不正确。 这些引脚是通过电阻器以 GND/Vcc 为基准还是设置为输出? 如果引脚保持输入状态并悬空、这些输入值可能会发生变化。
-Bobby