我参考网上的例子自己写了一个简单的TQ2440开发板和PC机之间的串口收发数据的程序,可是开发板上的程序总是运行不正确。。PC机上是正常的。。下面是我在ARM板上的发送数据程序和运行的截图。。望各位大侠指教指教呀~~
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
int fd;
int flag_close;
int open_serial(int k)
{
if(k==0)
{
fd = open("/dev/tq2440_serial0",O_RDWR|O_NOCTTY|O_NDELAY);
perror("open /dev/tq2440_serial0");
}
else
{
fd = open("/dev/tq2440_serial1",O_RDWR|O_NOCTTY|O_NDELAY);
perror("open /dev/tq2440_serial0");
}
if(fd == -1)
return -1;
else
return 0;
}
int main()
{
char sbuf[]={"Hello,this is a Serial_Port test!\n"};
int sfd,retv,i;
struct termios option;
int length=sizeof(sbuf);
open_serial(0);
printf("ready for sending data...\n");
tcgetattr(fd,&option);
cfmakeraw(&option);
cfsetispeed(&option,B9600);
cfsetospeed(&option,B9600);
tcsetattr(fd,TCSANOW,&option);
retv=write(fd,sbuf,length);
if(retv==-1)
{
perror("write");
}
printf("the number of char sent is %d\n",retv);
flag_close =close(fd);
if(flag_close==-1)
printf("Close the Device failur!\n");
return 0;
} |