我购买了 K8055n Velleman 实验板,出于某种原因,我运行每个程序或尝试访问该板时都会出现以下错误:
Could not open the k8055 (port:0)
Please ensure that the device is correctly connected.
不过,我怀疑我的规则不正确,但我确实保存了 velleman 规则文件,/etc/udev/rules.d
但重启后操作系统冻结了。我无法弄清楚我的 velleman 规则出了什么问题。
我也尝试安装 GUI,但无法创建文件。
~/k8055$ cd k8055gui
~/k8055/k8055gui$ cd src
~/k8055/k8055gui/src$ make g++ wx-config --cxxflags -c MyApp.cpp -o MyApp.o
/bin/sh: 1: wx-config: not found
In file included from MyApp.cpp:1:0: MyApp.h:4:19: fatal error: wx/wx.h: No such file or directory
compilation terminated.
make: *** [MyApp.o] Error 1
答案1
我终于在我的主板上发现了这个问题......
C 程序中有一个 if 语句不成立,导致电路板故障。
在 libk8055.c 文件中,语句“if ((read_status == PACKET_LEN) && (CurrDev->data_in[1] == CurrDev->DevNo ))”为错误....
静态 int ReadK8055Data(void) { int read_status = 0,i = 0;
if (CurrDev->DevNo == 0) return K8055_ERROR;
for(i=0; i < 3; i++)
{
read_status = usb_interrupt_read(CurrDev->device_handle, USB_INP_EP, (char *)CurrDev->data_in, PACKET_LEN, USB_TIMEOUT);
if ((read_status == PACKET_LEN) && (CurrDev->data_in[1] == 11 )) //not sure why it must be 11
return 0;
if (DEBUG)
fprintf(stderr, "Read retry\n");
}
return K8055_ERROR;
}