根据Wikipedia:
GPIO功能可能包括:
可以将GPIO引脚配置为输入或输出
可以启用/禁用GPIO引脚
输入值可读(通常为高= 1,低= 0)
输出值可写/可读
据我了解,如果为输入设置了引脚,则无法写入。换句话说,将值写入输入引脚无效。但是,我不确定输出引脚是否可读。
例如,给定一个编号为8的引脚,在调用函数write_pin_value(pin_8, 1);
之后,函数调用read_pin_value(pin_8)
是否总是返回值1?
答案 0 :(得分:2)
您应该查看您使用的目标芯片的数据表,因为不同的IC可能具有不同的输入/输出缓冲器结构。通常文档包含IO端口的完整描述。
一般说话固件可以在任何状态下写入和读取引脚,无论是处于输入还是输出模式都无关紧要。但是,将值写入输入引脚不会影响其物理状态。同样,如果读取输出引脚,您可能会收到破坏的结果。
您不能将值0x23写入引脚,因为引脚的寄存器为1位长,直到您使用数字模拟外设。
答案 1 :(得分:1)
这取决于MCU。其中一些有一个输出锁存器,可以为您提供实际输出状态的反馈。您可以阅读它以确保您的输出设置为正确的状态。
这在某些可以反转输出值(正常高,正常低)的MCU中也很有用,您可以检查实际输出状态是否符合预期。