Chinaunix首页 | 论坛 | 博客
  • 博客访问: 811109
  • 博文数量: 118
  • 博客积分: 2067
  • 博客等级: 大尉
  • 技术积分: 1751
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-17 14:27
文章存档

2016年(1)

2013年(1)

2012年(3)

2011年(26)

2010年(47)

2009年(40)

分类: LINUX

2012-12-25 17:37:05

串口的头文件:

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6. #include <fcntl.h>
  7. #include <termios.h>
  8. #include <errno.h>
  9. #include <string.h>

串口的参数设置:

点击(此处)折叠或打开

  1. /* set the terminal parameter */
  2. void m_setparms(int fd)
  3. {
  4.     struct termios tty;
  5.     int spd = B115200;

  6.     tcgetattr(fd, &tty);

  7.     cfsetospeed(&tty, spd); //set the speed to 115200
  8.     cfsetispeed(&tty, spd);

  9.     tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; // 8 bits data

  10.     /* Set into raw, no echo mode */
  11.     tty.c_iflag = IGNBRK;
  12.     tty.c_lflag = 0;
  13.     tty.c_oflag = 0;
  14.     tty.c_cflag |= CLOCAL | CREAD;

  15. #ifdef _DCDFLOW
  16.     tty.c_cflag &= ~CRTSCTS;
  17. #endif

  18.     tty.c_cc[VMIN] = 1;
  19.     tty.c_cc[VTIME] = 5;

  20.     tty.c_iflag &= ~(IXON|IXOFF|IXANY);

  21.     tty.c_cflag &= ~(PARENB | PARODD); // no parity
  22.     tty.c_cflag &= ~CSTOPB;

  23.     tcsetattr(fd, TCSANOW, &tty);
  24. }
主函数打开串口:

点击(此处)折叠或打开

  1. int main(int argc, char **argv)
  2. {
  3.     int fd, i, len;
  4.     struct timeval tv;
  5.     char buf[1024];
  6.     char *p;

  7.     if (argc != 2) {
  8.         printf("Usage: dcm board_type\n");
  9.         exit(0);
  10.     }
  11.     for (i=0; i<2; i++) {
  12.         //if (strcmp(
  13.     }

  14.     fd = open(DEV, O_RDWR | O_NDELAY | O_NOCTTY);
  15.     if (fd < 0)
  16.     {
  17.         perror("Can't Open Serial Port");
  18.         return -1;
  19.     } else {
  20.         i = fcntl(fd, F_GETFL, 0);
  21.         fcntl(fd, F_SETFL, i & ~O_NDELAY);
  22.         m_setparms(fd);
  23.     }

  24.     printf("Serial Port configure complete \n");    
串口的读写函数为:read/write


阅读(1655) | 评论(0) | 转发(0) |
0

上一篇:uboot引导kernel分析

下一篇:shell 循环

给主人留下些什么吧!~~