我在 Debian 下运行的工业 PC 上获得了一些 gpio 的字符设备。
在 C 中阅读工作得很好
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main (int argc, char **argv) {
int fd;
fd = open("/dev/bsw_gpio", O_RDWR);
if (fd == -1) {
printf("could not open device");
return 1;
}
unsigned char val;
int ret;
ret = read(fd, &val, sizeof(val));
if (ret == 0)
printf("Value : %d\n", val);
else
printf("No val read\n");
if(close(fd) != 0) {
printf("Could not close file");
}
return 0;
}
编辑
我忘了; 这让我将两个 io 引脚的状态设为 0 到 3 之间的值并且运行良好。但我需要在 Python 中执行此操作。
而 Python 以这种方式做出反应
>>> import os
>>> fp = os.open("/dev/bsw_gpio", os.O_RDWR)
>>> os.read(fp, 1)
b''
或者,使用常开:
>>> with open('/dev/bsw_gpio', 'r+b', buffering=0) as fp:
... fp.read()
...
b''
我怎样才能解决这个问题?