歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux串口編程分析(五)

Linux串口編程分析(五)

日期:2017/2/25 10:38:36   编辑:Linux教程
 int main(int argc, char **argv)

  {

  int fd;

  int nread;

  char buff[512];

  char *dev ="/dev/ttyS0"; //linux下的端口就是通過打開設備文件操作的

  fd = OpenDev(dev); //打開

  if (fd>0)

  set_speed(fd,19200); //打開後設置波特率19200

  else

  {

  printf("Can't Open Serial Port!\n");

  exit(0);

  }

  if (set_Parity(fd,8,1,'N')== FALSE) //設置8,1,n 注意,這裡和上面要和下位機相符才可能通信

  {

  printf("Set Parity Error\n");

  exit(1);

  }

  //一般讀的時候一般都用read ,寫的時候一般都用write,read要注意阻塞後程序停止不動,所以要用select 進行控制,注意tv每次循環都要設置;write 不用考慮阻塞,但要用循環寫方式保證一定寫完,其實讀最好也用循環讀方式保證一定能讀到所有東西並且能拼接在一起,然後在進行其他操作。最後while (1) 是串口通訊中常用的循環 就是一直執行,直到碰到break;這些東西挺煩瑣,不過其實也沒什麼。這裡就不詳細說了,下面是個最最簡單的。。

  while(1)

  {

  while((nread = read(fd,buff,512))>0)

  {

  printf("\nLen %d\n",nread);

  buff[nread+1]='\0';

  printf("\n%s",buff);

  }

  }

  //close(fd);

  //exit(0);

  }

  完了,是不是不難,其實除了串口設置是新知識,,事實上linux都是文件,串口是設備文件,設置好後,其他的東西就當成文件進行操作吧。

Copyright © Linux教程網 All Rights Reserved