- 论坛徽章:
- 0
|
三星2410的开发板 做一个linux项目,用了一块3根线的红外模块,不知道什么名字.怎么设置串口呢 我用的是串口1。我把控制寄存器改成红外模式.然后写了一个串口应用,把波特率设置成38400。想通过串口1的文件描述符来读取红外发过来的数据.但是一直按控制按钮.通过示波器能看到红外模块的数据线有波形.但是应用却读不到数据.
串口应该怎么设置呢.还有红外模块的波形是 3个字节的 开始时00FF 然后就是脉冲的波形.1.13ms的脉冲标识表示 0 2.25ms的脉冲表示 1 .
我的应用程序 #include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<termios.h>
int speed_arr[] = {B115200,B38400, B19200, B9600, B4800, B2400, B1200, B300 };
int name_arr[] = {115200,38400, 19200, 9600, 4800, 2400, 1200, 300 };
void set_speed(int fd, int speed)
{
int i;
int status;
struct termios Opt;
tcgetattr(fd, &Opt);
for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++)
{
if (speed == name_arr[i])
{
tcflush(fd, TCIOFLUSH);
cfsetispeed(&Opt, speed_arr[i]);
cfsetospeed(&Opt, speed_arr[i]);
status = tcsetattr(fd, TCSANOW, &Opt);
if (status != 0)
{
perror("tcsetattr fd1 error");
return;
}
else
{
printf("set fd1 ok \n");
}
tcflush(fd,TCIOFLUSH);
}
}
}
int main()
{
int fd,flag,wr_num=0,rd_num=0;
struct termios term;
speed_t baud_rate_i,baud_rate_o,baud_rate_a,baud_rate_b;
char send_buf[]="hello,serial!",recv_buf[20];
fd=open("/dev/s3c2410_serial1",O_RDWR|O_NONBLOCK);
if(fd==-1) //error
printf("can not open the ttyUSB0!\n");
else //ok
printf("open USB-Serial ttyUSB0 ok!\n");
flag=tcgetattr(fd,&term);
baud_rate_i=cfgetispeed(&term);
baud_rate_o=cfgetospeed(&term);
printf("baudrate of in is:%d,baudrate of out is%d,fd=%d\n",baud_rate_i,baud_rate_o,fd);
set_speed(fd,38400);
flag=tcgetattr(fd,&term);
baud_rate_a=cfgetispeed(&term);
baud_rate_b=cfgetospeed(&term);
printf("baudrate of in is:%d,baudrate of out is%d,fd=%d,flag=%d\n,",baud_rate_a,baud_rate_b,fd,flag);
while(1)
{
wr_num=write(fd,send_buf,sizeof(send_buf));
if(wr_num>0)
printf("write ttyUSB0 success!\n");
else
printf("write ttyUSB0 fail!\n");
sleep(1);
rd_num=read(fd,recv_buf,sizeof(recv_buf));
if(rd_num>0)
printf("we can read \"%s\" from the ttyUSB0.total:%d characters\n",recv_buf,rd_num);
else
printf("read ttyUSB0 fail!\n");
sleep(1);
}
}
驱动程序就是2410的串口1 驱动
跪求大神 怎么设置串口,通过应用能接受红外模块的数据 啊 |
|