我最近要做一个从板子的串口读取数据的问题。电源通过一个串口和我的板子连接,电源不断往串口上发数据,类似00 01 02 03 ...25 26 27...59,从0到59,电源每秒发送一个数据,到59后再从0开始循环。我的程序跑在板子上需要读取电源发过来的数据,不过目前我读的时候老是读不对,要等待很长时间才能打印出我读到的数据,而且还不是对的。串口波特率,奇偶性和设备名设置的都对,而且我向串口里(电源)写数据的时候也是对的,程序写的很简单,调试了好几天了,就是不成功,请高手们支招!int ReadCom(void)
{
int fd, i = 0,m = 0,length = 0;
char buff[2] ;
int read_num;
char *dev ="/dev/ttyS1";
fd = N_OpenDev(dev);
if (fd>0)
N_SetSpeed(fd,9600);
else
printf("Can't Open Serial Port!\n");
if (N_SetParity(fd,8,1,'N')== FALSE)
{
printf("Set Parity Error\n");
}
while (1)
{
while((read_num=read(fd, buff,1) >0))
{
printf("read_num == %d\n",read_num);
buff[read_num+1] = '\n';
printf( "\n%X\n", buff[0]);
}
}
free(pData);
close(fd);
return 0;
}
|