|
|

楼主 |
发表于 2005-5-20 09:23:58
|
显示全部楼层
就是如果 char *sdata="32"; write(fdcom,sdata,2)的话,是分别向端口写入3和2这两个字符,而我想要写入的是0x20h。
已经找到一个解决办法,比如:int i =32; char *sdata = i; write(fdcom,sdata,1)就可以向端口写入0x20H了,不知还有其他什么好点的办法吗?
现在的问题是总是读不到数据。。。郁闷
FD_ZERO (&fs_read);
FD_SET (fdCom, &fs_read);
tv_timeout.tv_sec = TIMEOUT_SEC (datalength, 115200);
tv_timeout.tv_usec = TIMEOUT_USEC;
temp = select (fdCom + 1, &fs_read, NULL, NULL, &tv_timeout);
if (temp) {
len = read (fdCom, data, datalength);
printf("the received len is: %d\n",len);
}
else
return (-1);
这一段应该没错吧,用gdb可以看到temp==1,就是有可读取字符了,但read返回总是-1。不知道问题出在哪里了?
高手们谁有现成的列子,发上来学习一下呀,多谢多谢。。。。。。。。。 |
|