|
我用以下代码通过串口与读卡器通讯,很奇怪,前两条命令的串口返回数据可以读到,为什么后面的串口返回数据就读不到了?缓冲区应该足够大的啊,请教各位了
:
char wbuff[2],rbuff[128+1];
//命令1
wbuff[0]=0x0;
write(fd,wbuff,1);
wbuff[0]=0x52;
write(fd,wbuff,1);
...
//命令n
wbuff[0]=0x2;
write(fd,wbuff,1);
...
//最后,读取串口数据
sleep(0.4);
while ((nread=read(fd,rbuff,12)!=0)
{
printf("read [%d]: ",nread);
for (i=0;i<nread;i++)
printf("%2x ", rbuff);
printf("\n");
}
运行显示:
read[2]: 10 10
read[7]: 2 8 ...
以下是我的串口配置:
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~PARENB;
波特率:115200bps |
|