我可以从 GPIO 的输出引脚读取有效信号吗?

标签 c io embedded processor instruction-set

根据 Wikipedia :

GPIO capabilities may include:

  • GPIO pins can be configured to be input or output

  • GPIO pins can be enabled/disabled

  • Input values are readable (typically high=1, low=0)

  • Output values are writable/readable

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

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

最佳答案

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

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

您不能将值 0x23 写入引脚,因为引脚的寄存器只有 1 位长,除非您使用数模外设。

关于我可以从 GPIO 的输出引脚读取有效信号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592513/

相关文章:

c - 我需要 for 循环的解释

c - C 中整数数组的 shell 排序

c++ - libgcc_s.so 在同一进程中静态和动态链接是否正常?

python - 在 python 中将字节转换为 BufferedReader

c - 项目中是否可以隐藏声明?

python - 为 Linux 创建 USB 设备驱动程序

C - 使用 fopen、fclose、fputc 等

java - java中文件的状态

c++ - 使用linux从串口输出PWM信号

c - 即使在满足条件后,While 循环也不会中断,但如果我在 while 循环中使用 "printf",则相同的代码开始工作