(求助)写的程序在开发板上通过串口读RFID不稳定(有时能读到有时不能读到)
我用的是三星2440的开发板,板上加载了2.6内核的Linux。编写了一段代码通过串口读RFID。主要代码如下:
int read_rfid(char read_data[20])
{
int serial_fd;
int read_len = 14;
int read_byte = 0;
serial_fd = open("/dev/ttys/1",O_RDONLY, O_RSYNC);
fcntl(serial_fd, F_SETFL, 0);//设置阻塞读。
if (serial_fd == -1)
{
printf("open fail.\n");
perror("Serial open error!\n");
return -1;
}
set_rfid_uart(serial_fd);
read_byte = read(serial_fd, read_data, read_len);//read 14 bytes.
close(serial_fd);
return 1;
}
这段代码在PC机Ubuntu11.10下测试通过,能够读到RFID 的每次触发。但是当移植到开发板上时,触发十几次才能够读到一次。裸跑测试程序时串口是能够读到RFID 的每次触发的。裸跑是直接用这个的:
while(!(rUTRSTAT1 & 0x1)); //Receive data ready
ch = RdURXH1();
小弟百思不得其解。请大侠拔刀相助。